SQL概述
- SQL语句可以单行或者多行编写,以
;结尾 - MySQL中的SQL语句不区分大小写,关键字一般使用大写
注释
- 单行注释:
-- - 多行注释:
/* */ - MySQL单行注释:
#
操作数据库
1.创建数据库
- 创建数据库
sql -- 语法:CREATE DATABASE 数据库名; CREATE DATABASE db1_1;
- 设置字符集
sql -- 语法:CREATE DATABASE 数据库名 CHARACTER SET 字符集; CREATE DATABASE db1_1 CHARACTER SET utf8;
2.查看数据库
- 切换数据库
-- 语法:USE 数据库USE db1_1;
- 查看当前数据库
SELECT DATABASE();
- 查询所有数据库
SHOW DATABASES;
- 查看数据库详细信息
-- 语法:SHOW CREATE DATABASE 数据库名;SHOW CREATE DATABASE db1_1;
3.修改数据库
- 修改数据库字符集
-- 语法:ALTER DATABASE 数据库名 CHARACTER SET 字符集;ALTER DATABASE db1_1 CHARACTER SET utf8;
4.删除数据库
- 删除数据库
-- 语法:DROP DATABASE 数据库名DROP DATABASE db1;
操作数据表
1.数据类型
- 整数类型:
TINTINT(8字节)、SMALLINT(16字节)、MEDIUMINT(24字节)、INT(32字节)、BIGINT(64字节)
整数类型有可选的UNSIGNED属性,表示不允许负数,可以使正数范围提高一倍,例如:TINTINT UNSIGNED可以使存储的范围是0-255
浮点类型:
- FLOAT(4字节)、DOUBLE(8字节)、DECIMAL(字符串形式的浮点数)
字符串类型
VARCHAR:可变长字符串
CHAR:固定长度字符串
TEXT:存储大的字符串,类型有:TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
BLOB:字符串以二进制存储,类型有:TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
ENUM:枚举类型
日期类型:
- DATE(3字节):记录日期
- TIME(3字节):记录时间
- YEAR(1字节):记录年份
- DATETIME(8字节):记录日期yyyy-MM-dd HH:mm:ss
- TIMESTAMP(4字节):记录修改时间
2.创建数据表
- 创建数据表
/*语法:CREATE TABLE 表名(字段名称1 字段类型(长度),字段名称2 字段类型);*/CREATE TABLE table1(field1 INT,field2 VARCHAR(20));
- 复制表结构
-- 语法:CREATE TABLE 新表明 LIKE 旧表名CREATE TABLE table2 LIKE table1;
3.查看数据表
- 查看当前数据库所有表
SHOW TABLES;
- 显示数据表结构
-- 语法:DESC 表名;DESC table1;
- 显示创建数据表的SQL语句
-- 语法:SHOW CREATE TABLE 表名;SHOW CREATE TABLE table1;
4.删除数据表
- 删除表
-- 语法:DROP TABLE 表名;DROP TABLE table2;
- 判断是否存在并删除
-- 语法:DROP TABLE IF EXISTS 表名;DROP TABLE IF EXISTS table2;
5.修改数据表
- 修改表名
-- 语法:RENAME TABLE 旧表名 TO 新表名RENAME TABLE table1 TO newtable1;
- 修改表的字符集
-- 语法:ALTER TABLE 表名 CHARACTER SET 字符集ALTER TABLE table1 CHARACTER SET gbk;
- 向表中添加列
-- 语法:ALTER TABLE 表名 ADD 字段名称 字段类型ALTER TABLE table1 ADD field3 VARCHAR(20);
- 修改表中列的数据类型或长度
-- 语法:ALTER TABLE 表名 MODIFY 字段名称 字段类型ALTER TABLE table1 MODIFY field3 VARCHAR(50);
- 修改列名称
-- 语法:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度);ALTER TABLE table1 CHANGE field4 field3 VARCHAR(30);
- 删除列
-- 语法:ALTER TABLE 表名 DROP 列名;ALTER TABLE table1 DROP field3;
操作数据
1.新增数据
- 插入数据的3种方式
-- 语法:INSERT INTO 表名 (字段名1,字段名2...) VALUES(字段值1,字段值2...);INSERT INTO table1 (field1,field2) VALUES(1,'Name');INSERT INTO table1 VALUES(2,'Name');INSERT INTO table1 (field2) VALUES('Name');
2.修改数据
- 修改整列数据
-- 语法:UPDATE 表名 SET 列名 = 值, 列名 = 值...UPDATE table1 SET field2 = 'NAME';
- 修改表的字符集
-- 语法:UPDATE 表名 SET 列名 = 值, 列名 = 值... [WHERE 条件表达式/字段名 = 值 ];UPDATE table1 SET field2 = 'NAME' WHERE field1 = 1;
3.删除数据
- 删除所有数据
-- 语法:DELETE FROM 表名;DELETE FROM table1;
- 指定条件删除数据
-- 语法:DELETE FROM 表名 [WHERE 字段名 = 值];DELETE FROM table1 WHERE field1 = 1;
- 初始化数据表
-- 语法:TRUNCATE TABLE 数据表;TRUNCATE TABLE table1;
4.简单查询数据
- 查询所有数据
-- 语法:SELECT 列名,列名... FROM 表名;-- 使用 * 表示所有列SELECT * FROM table1;
- 别名查询
-- 语法:SELECT 列名 AS '别名', 列名 AS '别名',... FROM 表名;SELECT field1 AS '编号', field2 AS '姓名' FROM table1;
- 去重查询
-- 语法:SELECT DISTINCT 列名 FROM 表名;SELECT DISTINCT field2 FROM table1;
- 运算查询
SELECT field1 + 100 FROM table1;
- 条件查询
-- 语法:SELECT 列名 FROM 表名 WHERE 条件表达式;SELECT * FROM table1 WHERE field1 = 1;
| 运算符 | 说明 |
|---|---|
> < <= >= = <> != |
大于、小于、大于(小于)等于、不等于 |
BETWEEN ...AND... |
显示在某一区间的值 |
IN(集合) |
in中的每个数据都会作为一次条件,只要满足条件就会显示 |
LIKE '%哈%' |
模糊查询 |
IS NULL |
查询某一列为NULL的值, 注: 不能写 = NULL |
And / && |
多个条件同时成立 |
Or / || |
多个条件任一成立 |
Not |
不成立,取反 |
更新时间:{docsify-updated}
