一.数据类型:
(1)字符:变长字符varchar(#) ,varbinary(#) char(10) varchar(10) 定长字符 char(#),BINARY(#) binary是区分大小写
(2)内建类型enum,set(集合) mysql独有的数据类型
对象 : TEXT, TINYTEXT, MEDIUMTEXT, LOGTEXT, (文本大对象类型)
BLOB,TINYBLOB,MEDIUMBLOB,LONGBLOB(二进制大对象类型)
(3)数值: 插入或更新数据一定不能用引号
精确数值: 1:整形INT (包含正数和负数)、、也叫浮点型
TINYINT,SMALLINT,INT,MEDIUMINT,BIGINT
2^8 2^16
十进制DECIMAL (mysql独有的数据类型)decimal(8,2) 888888.88 88888.88 999999.99
近似数值: 1:单精度:FLOAT
2:双精度:DOUBLE
(4)字符类型修饰符:
NOT NULL 非空约束
NULL
DEFAULT ‘’指定默认值(此两试用任何)
CHARACTER SET ‘’ 使用的字符集,或者使用CHARSET‘’
COLLATION:使用的排序规则(这两种定义表上面)
查看所有字符集
mysql > SHOW CHARACTER SET; show charset;
查看默认排序规则
mysql > SHOW COLLATION;
(5)整形数据修饰符
NOT NULL 非空约束
NULL
DEFAULT NUMBER
PRIMARY KEY | UNIQUE KEY (不一定非要定义在数值型上)
UNSIGNED(无符号修饰,仅正数)(mysql中数值不能加引号,字符型要加引号,支持三种引号,’’,””,``.)
AUTO_INCREMENT(自动增长)
(6)内建类型(枚举和集合)修饰符
NULL
NOT NULL
DEFAULT
(7)日期时间型:(也需要加上引号)
日期:DATE 年-月-日 date(‘1988-08-08’)
时间:TIME 时-分-秒 time(’10-34-00’)
日期和时间:DATETIME
时间戳:TIMESTAMP
年份:YEAR(2),YEAR(4) 88 1988
二.sql的正式操作:
(1)创建表
CREATE TABLE [IF NOT EXISTS] ‘tbl_name’(col1 type1,col2 type2,.......);
col type1
PRIMARY KEY(COL1,....)
INDEX(col1,.....)
UNIQUE KEY(col1,....)
表选项:
ENGINE [=] engine_name
ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
SHOW ENGINES(单独命令,查看存储引擎类型)
(2) 查看表的结构(字段结构):DESC tb_name
(3)查看表的创建命令
SHOW CREATE TABLE tbl_name;
(4)查看表的状态属性信息:
SHOW TABLE STATUS LIKE ‘tbl_name’\G;注意:like后面的表名必须接引号
(5)删除表(不可逆,谨慎操作)
DROP TABLE [IF EXISTS] ‘tbl_name’;
(6)修改表 (谨慎)
修改表名:alter table tbl_name rename table_new_name
修改表的内容(表名 表的字段(添加、删除、修改))
修改字段:包括添加ADD
添加字段:add
ALTER TABLE tbl_name ADD col1 data_type [FIRST|AFTER col_name]
删除字段:drop(不能删除主键的字段)
ALTER TABLE tbl_name DORP col_name;
修改字段
alter(删除字段默认值)change(改字段名称),modify(改字段的属性定义)
修改字段名 ALTER TABLE tbl_name change col_name col_name 字段定义
索引: 一种特殊数据结构,定义在查找时作为查找条件的字段。
优点:加速查询操作,如果没有索引,查询表时需要进行全表扫描。
缺点:会一定程度影响性能
定义索引时,须要定义在查找条件的字段上。索引只有添加和删除,没有修改。
创建表的同时可以直接创建索引,如果没有创建可以后续进行添加索引
例如创建表的时候同时定义索引
添加索引:add
ALTER TABLE tbl_name ADD indexTYPE(col_name);
删除索引:ALTER TABLE tbl_name DROP index index_name;
查看表中的索引:
SHOW INDEXES FROM [db_name.] tbl_name;
三.DML语句(数据操作语言):
INSERT ,DELETE ,SELECT, UPDATE
INSERT语句(插入数据语句)
可以单行插入或多行插入。(如多行尽量一次执行插入)
INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} (val1,...),(...),....
四.SELECT语句(查询语句) 结合投影、选择、连接
SELECT col1,col2,... FROM tbl_name [where clause] [ORDER BY ‘col_name’ [DESC]] [LIMIT [m,]n];
字段表示法:
*:所有字段
as:字段别名,col1 AS alias1
ORDER BY:排序查找(默认升序) 降序接DESC
LIMIT:字符限制查找(只显示其中部分内容),可以偏移限制查找。)
clause条件表示:
字段后接比较式(除等于,其他仅局限于数值型)
> = < >= <= !=
条件逻辑操作
and or not between ... and ...(相当于>=和<=之间)
空值比较或匹配
IS NULL (子句内元素为空)
IS NOT NULL (子句为非空)
like: (模糊匹配)
%:任意长度任意字符
_:任意单个字符
五.DELETE语句(删除表中的数据)
一定要注意删除需要加条件限制(不加条件限制非常危险)
DELETE FROM tb_name [where clause] [ORDER by ‘col_name’ [DESC]] [LIMIT [m,]n]
六.UPDATE语句(修改表中的数据)
UPDATE tbl_name SET col1=new_cal1,col2=new_val2, [where clause] [ORDER by ‘col_name’[DESC]] [LIMIT [m,]n]