- 库操作:
- 查看所有数据库:SHOW DATABASES #末尾要加s
- 切换(选择要操作的)数据库:USE 数据库名
- 创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1 [CHARSET=utf8]
- #[]中的内容不用必须写,第一个[]中的内容为判断此数据库是否存在,后面的为设置字符编码集,防止字段为中文时出现1366错误
- 删除数据库:DROP DATABASE [IF EXISTS] 数据库名
- 修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8
- 表操作:
- 创建表:
- CREATE TABLE [IF NOT EXISTS] 表名(
- 列名 列类型,
- 列名 列类型,
- ……
- 列名 列类型
- );
- 查看当前数据库中所有表名称:SHOW TABLES;
- 查看指定表的创建语句:SHOW CREATE TABLE 表名;
- 查看表结构:DESC 表名;
- 删除表:DROP TABLE 表名;
- 修改表:前缀为 ALTER TABLE 表名
- 添加列:
- ALTER TABLE 表名 ADD(
- 列名 列类型,
- 列名 列类型,
- ……
- );
- 修改列类型(如果被修改的列已存在数据,那么新的类型可能会影响到已存在数据):ALTER TABLE 表名 MODIFY 列名 列类型;
- 修改列名:ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;
- 删除列:ALTER TABLE 表名 DROP 列名;
- 修改表名称:ALTER TABLE 原表名 RENAME TO 新表名;
- 记录操作:
- 插入数据
- INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...);
- 在表名后给出要插入的列名,其他没有指定的列等同于插入null值。所以插入记录总是插入一行;
- 在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应;
- 在数据库中所有的字符类型,必须使用单引号,不能使用双引号,日期类型也要使用单引号
- INSERT INTO 表名 VALUES(列值1,值2);
- 没有给出要插入的列,那么表示插入的所有列;
- 值的个数必须是该表列的个数;
- 值的顺序,必须与表创建时给出的列的顺序相同。
- 修改数据
- UPDATE 表名 SET 列名1=列值1,列名2=列值2,... [WHERE 条件]
- 条件(条件可选):
- 条件必须是一个boolean类型的值或表达式:UPDATE t_person SET gender='男', age=age+1 WHERE sid='1';
- 运算符:=,!=,<>,>,<,>=,<=,BETWEEN...AND,IN(...),IS NULL,NOT,OR,AND
- 删除数据
- DELETE FROM 表名 [WHERE 条件];
- TRUNCATE TABLE 表名:TRUNCATE是DDL语句,它是先删除drop该表,再create该表,而且无法回滚。
- 查询操作:
- 基本查询
- 查询所有列
- SELECT * FROM 表名;
- 其中“*”表示所有列
- 查询指定列
- SELECT 列1[,列2,……列n] FROM 表名;
- 完全重复的记录只显示一次
- 当查询结果中的多行记录完全一样时,只显示一行,一般用于查询某个字段中一共有几种类型的值。
- SELECT DISTINCT * | 列1[,列2,……,列n] FROM 表名;
- 例如:SELECT DISTINCT sal FROM emp;
- 查询员工表的工资,如果存在相同的工资只显示一次
- 列运算
- 数量类型的列可以做加、减、乘、除运算
- SELECT *,sal*1.5 FROM emp;
- 字符串做算术运算时,会被当做0来进行运算,在字符串中+号不代表拼接
- 字符串类型可以做连续运算
- SELECT CONCAT('$',sal) FROM emp;
- 转换NULL值
- 有时需要把NULL转换成其他值,例如com+1000时,如果com列存在NULL值,那么NULL+1000还是NULL,而我们这是希望把NULL当做0来运算。
- SELECT IFNULL(comm,0)+1000 FROM emp;
- IFNULL(comm,0):如果comm中存在NULL值,那么当成0来运算;
- 给列起别名
- 当使用列运算后,查询出的结果集中的列名称不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了。
- SELECT IFNULL(comm,0)+1000 AS 奖金 FROM emp;
- 其中AS可以省略
- 条件控制
- 条件查询
- 与前面介绍的UPDATE和DELETE语句一样,SELECT语句也可以使用WHERE子句来控制记录。
- SELECT empno,ename,sal,comm FROM emp WHERE sal > 1000 AND comm IS NOT NULL;
- SELECT empno,ename,sal FROM emp WHERE sal BETWEEN 20000 AND 30000;
- SELECT empno,ename,job FROM emp WHERE job IN('经理','董事长');
- 模糊查询
- 当你想查询姓张,并且姓名一共两个字的员工时,就可以使用模糊查询
- 模糊查询
- SELECT * FROM emp WHERE ename LIKE '张_';
- 模糊查询需要使用运算符:LIKE,其中匹配一个任意字符,注意,只匹配一个字符而不是多个。
- 上面语句查询的是姓张,名字由两个字组成的员工。
- 下划线“_”可以匹配1个字符,如果要匹配0-n个字符,需要用“%”;
- SELECT * FROM emp WHERE ename LIKE ‘%刚’;
- 查询名字结尾是带“刚”字的员工。
- 排序查询
- 升序
- SELECT * FROM emp ORDER BY sal ASC;
- 按sal排序,ASC升序,DESC降序,其中ASC是可以省略的
- 降序
- SELECT * FROM emp ORDER BY comm DESC;
- 按comm降序排序查询
- 使用多列作为排序条件
- SELECT * FROM emp ORDER BY sal ASC, comm DESC;
- 使用sal升序排序,如果sal相等,再按照comm降序排序
MYSQL的简单操作
最新推荐文章于 2023-02-02 23:31:49 发布