一、库操作
1、创建数据库,创建时可以指定字符集和排序规则
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name [DEFAULT] COLLATE [=] collation_name
2、删除数据库
DROPDATABASE [IF EXISTS] db_name;
3、修改数据库字符集合排序规则,如果是Innodb存储引擎还可以通过修改数据库目录中的.opt文件
ALTER DATABASE db_name [DEFAULT] CHARACTER SET [=] charset_name [DEFAULT] COLLATE [=] collation_name
#查看数据库支持的字符集和排序规则 SHOW CHARACTER SET; SHOW COLLATION;
二、表操作
1、创建表
1、直接创建一张空表 CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [partition_options]
2、从另一张表查询数据并创建新表,不会保存原有表结构 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [partition_options] select_statement
3、以另一张表为模板并创建一张新表 CREATE TABLE [IF NOT EXISTS] tbl_name LIKE old_tbl_name;
2、修改表
ALTER TABLE tbl_name [alter_specification [, alter_specification] ...] [partition_options] 1、添加字段 ADD col_name column_definition [FIRST | AFTER col_name]; 2、删除字段 DROP col_name; 3、修改字段 MODIFY col_name column_definition; #只能修改字段定义 CHANGE old_col_name new_col_name column_definition; #可以修改字段名 4、添加索引或键 ADD {INDEX | KEY} [index_name] [index_type] (index_col_name,...) [index_option] ... 5、删除索引或键 DROP {INDEX | KEY} index_name; 6、删除主键 DROP PRIMARY KEY; 7、修改表名 RENAME [TO | AS] new_tbl_name; 8、创建外键 ADD FOREIGN KEY [index_name] (index_col_name,...) reference_definition;
3、删除表
DROP TABLE [IF EXISTS] tbl_name;
三、DML语句
1、SELECT
1、简单查询
SELECT field1,firld2... FROM tb_name; 投影 SELECT * FROM tb_name WHERE where_condition; 选择 /* WHERE过滤支持的操作符: 1、条件表达式 + - * / % 2、逻辑关系 AND OR NOT 3、正则表达式 REGP| RLIKE 4、特殊操作符 BETWEEN... AND... 两个条件之间 LIKE %string% 匹配字符串 _匹配任意单个字符串 %匹配任意长度字符串 IN 成员关系测试 NOT IN IS NULL 空值测试 IS NOT NULL 非空测试 */
2、子句
1、ORDER BY子句基于一个或多个列按升序或降序顺序排列数据 ORDER BY column1, column2, .. {ASC(升序)|DESC(降序)} SELECT * FROM ORDER BY field_name; 2、LIMIT子句用于限制由SELECT语句返回的数据数量 LIMIE [offset]count; SELECT * FROM COMPANY LIMIT 5; SELECT * FROM COMPANY LIMIT 2, 3; 3、聚合函数 SUM() 求和 MIN() 最小值 MAX() 最大值 AVG() 平均数 COUNT() 次数 4、GROUP BY子句用于对相同的数据进行分组,GROUP BY子句必须放在WHERE子句中的条件之后,必须放在ORDER BY子句之前 GROUP BY column1, column2...; SELECT field1, SUM(field2) FROM tb_name GROUP BY field2; 5、HAVING子句用于由 GROUP BY子句创建的分组上设置条件 支持操作符和WHERE子句一样 6、字段别名、表别名 SELECT field1 AS new_field_name FROM tb_name AS new_tb_name;
3、联合查询
1、... LEFT JOIN ....ON ... 左连接 2、... RIGHT JOIN ... ON ... 右连接 3、UNION 联合查询 4、FROM tb1, tb2 WHERE xxx 5、FROM (select_statement) 子查询
2、INSERT
1、INSERT INTO tb_name(col1, col2...) VALUES (value1, value2... ), (); 2、INSERT INTO tbname SET col1=value1, col2=value2...; 3、INSERT INTO tb_name (select_statement);
3、UPDATE
UPDATE tb_name SET col=value1, col=value2... WHERE ...;一定要跟WHERE条件,负责会修改全表的内容
4、DELETE
DELETE FROM tb_name WHERE ...; 一定要跟WHERE条件,负责会清空表 使用DELETE清空表后,AUTO_INCREMENT计数器不会清零,若是要清空表使用TRUNCATE tb_name;
5、VIEW
1、CREATE VIEW view_name AS select_statement; 2、DROP VIEW view_name;
四、数据类型
数值 整数 TINYINT 1字节,取值-128 - 127 | 0 - 255 SMALLINT 2字节,取值-32768 - 32767 | 0 - 65535 MEDIUMINT 3字节,取值-8388608 - 8388607 | 0 - 16777215 INT | INTEGER 4个字节,取值-2147483648 - 2147483647 | 0 - 4294967295 BIGINT 8个字节,取值-9233372036854775808 – 9223372036854775807 | 0 - 18446744073709551615 浮点数 FLOAT 4字节,单精度 DOUBLE 8字节,双精度 DECIMAL 对DECIMAL(M,D)如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 精确小数值 字符 CHAR() 0-255字节 定长字符串 VARCHAR() 0-255字节 变长字符串 BINARY() 定长二进制字符串 VARBINARY() 变长二进制字符串 文本对象 TINYTEXT 0-255字节 短文本字符串 TEXT 0-65535字节 长文本数据 MEDIUMTEXT 0-16777215字节 中等长度文本数据 LONGTEXT 0-4294967295字节 极大文本数据 TINYBLOB 0-255字节 不超过255个字符的二进制字符串 BLOB 0-65535字节 二进制形式的长文本数据 MEDIUMBLOB 0-16777215字节 二进制形式的中等长度文本数据 LOGNGBLOB 0-4294967295字节 二进制形式的极大文本数据 日期时间 DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值 TIME 3 ‘-838:59:59‘/‘838:59:59‘ HH:MM:SS 时间值或持续时间 YEAR 1 1901/2155 YYYY 年份值 DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值 TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳 其他 ENUM ENUM类型在系统内部可以存储为数字,并且从1开始用数字做索引。一个ENUM类型最多可以包含65536个元素,其中一个元素被MySQL保留,用来存储错误信息,这个错误值用索引0或者一个空字符串表示。 SET 一个SET类型最多可以包含64项元素。在SET元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以SET类型中不可能包含两个相同的元素。
五、约束修饰符
1、NOT NULL 不能为空 2、UNSIGNED 无符号 3、DEFAULT 为字段自定一个默认值 4、PRIMARY KEY 主键 5、UNIQUE KEY 唯一键 6、FORIGEN KEY 外键 7、AUTO_INCREMENT 自动递增
时间: 2024-10-13 02:33:30