登录:
格式:mysql -h 机器名 -u用户名 -p密码(密码与p之间无空格)
如:mysql -u root -p123
mysql -h localhost -u root -proot 参数的顺序可以打乱
mysql -h localhost -u root -p school 登录到指定的数据库同时密码单独的隐藏输入
退出:quit
修改root的密码:
不登录直接使用
mysqladmin –u root –h localhost –p password 新密码,先输入原密码,再输入新密码
建库:
创建school数据库
create database school;
如果school数据库不存在,则创建它,并显示设置字符集,默认是utf8
create database if not exists school character set gbk;
显示创建school数据库的具体内容
show create database school;
刷新数据库,创建用户和修改权限后要刷新数据库
flush privileges;
切换到当前的数据库为school
use school;
显示所有数据库
show databases;
显示所有表
show tables;
显示user表的所有列信息
desc user;
删除school数据库
drop database school;
关于数据类型
数字类型
int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系
如 year int(4), 年份是4位数字的宽度。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间
decimal最大取值范围与double相同,但其有效的取值范围由M和D的值决定。它实际以字符串的方式存储
注意:float、double也可以指定精度,如 x float(5,1),y double(5,1),是非标准SQL用法
文本类型
char(4),不管放多少数据,都只有4位,4字节长
varchar(4),最长4位,5个字节,如果存放3位字符串,如:’abc’,只有4个字节
Text,最长65535个字符
枚举类型
enum(‘a’,’b’,’c’):是一个字符串对象,可取的值有,a,b,c,’’,null。enum列总有一个默认值,如果将enum列声明为null,null值则为该列的一个有效值,并且默认值为null。如果enum列被声明为not null,其默认值为允许的值列表的第一个元素。
set(‘值1’,’值2’,’值3’):是一个字符串对象,在内部与enum相同用的是整数表示。意思是只能插入值1~值3任意组合的数据,如果有重复的自动删除。如:insert into table1 values(‘值1’),(‘值1, 值2’) ,(‘值1, 值2, 值3’)
enum与set的区别是:enum取单值,set取多值
创建表
-- 切换到school数据库use school;-- 如果customers表存在则删除DROP TABLE IF EXISTS customers;-- 如果customers 不存在则创建CREATE TABLE IF NOT EXISTS customers(cu_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,cu_name VARCHAR(50) NOT NULL,cu_amount FLOAT(4,2),cu_sex ENUM('男','女') DEFAULT '男',cu_level SET('一级会员','二级会员','华中区','华南区'));
修改表的结构
重命名表 :alter table t1 rename t2;
修改列 :alter table t1 modify 新列名 char(70) not null;
加一列 :alter table t1 add tax float(6,2) after amount;
删一列 :alter table t1 drop tax;
添加索引 :alter table t1 add index(列名);
添加主键 alter table t1 add 主键约束名 primary key(列名)
添加外键 alter table t2 add foreign key(orderid) references t1(o_id);
唯一约束 alter table table2 add unique key (列名1, 列名2);
默认约束 alter table table2 alter price set default 1234.33
说明:price是float(6,2)数据类型
查询
基本同ANSI SQL,有些不同的如下:
取前4行数据:select * from t1 limit 4;
从第2行开始查询三行:select * from t1 limit 2, 3;
注意:limit 1,1 返回第二行,而不是第一行
子查询必须要有别名: select * from (select * from table1 where id=123) as t1;




