MYSQL的简单操作

  • 库操作:
  • 查看所有数据库: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降序排序
  •  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值