MySQL大小写通用。
一、常见用的mysql指令
1、show databases; #查看当前所有库
2、show tables; #查看所在库中的所有表
3、use 库名; #进入该库
4、show tables from 库名; #查看其他库中的所有表
5、create table 表名; #创建表
6、create database 库名; #创建库
7、desc 表名; #查看表的结构
8、select version(); #在库中查看mysql的版本信息
9、mysql --version 或 mysql --V #不在库中查看mysql的版本信息
二、基础查询
1、select 字段名 from 表名; #查询单个字段
2、select 字段名,字段名 from 表名; #查询多个字段
3、select * from 表名; #查询所有字段
4、select 常量值; #查询常量
5、select 函数名(实参列表); #查询列表
6、select 100/1234; #查询表达式
7、起别名:1、as 2、空格
8、select distinct 字段名 from 表名;
9、select concat(字段名,字段名) from 表名; #拼接,单输出不能是字符串
10、select (is not null)* from employees where is not null; #查询不为空的字段
11、SELECT * FROM employees WHERE last_name LIKE '%\_n%'; #模糊查询
筛选条件:
&& and 与
|| or 或
! not 非
三、排序查询
select * from employees where job_id < 20 order by salary asc(desc); #升序降序
四、常见函数
1、SELECT CONCAT(last_name,'_',first_name) aaa FROM employees; #拼接concat
2、SELECT LENGTH('aab'); #length转换成数值
3、SELECT UPPER('sdadas'); #upper转换成大写,lower转换成小写
SELECT LOWER('ADSADASD');
4、SELECT SUBSTR('31321',3,2); #substr从左往右截取
5、SELECT TRIM('aa'FROM'aaqqaass'); #trim去重,只能是左右两边
6、SELECT INSTR('aabbcc','c'); #instr返回一个索引值,只为最先出现的那个值
7、SELECT LPAD('abc',6,'dd'); #lpad指定字符,从左填充相应的值(字符总长等于6)
8、SELECT RPAD('abc',6,'dd'); #rpad指定字符,从右填充相应的值(字符总长等于6)
9、SELECT REPLACE('abcdaeaf','a','d'); #replace替换,将a替换成d
五、数学函数
1、SELECT ROUND(-1.66); #round取整
SELECT ROUND(-1.66,1); #取小数后两位
2、SELECT CEIL(1.22); #想上取整
3、SELECT FLOOR(1.33); #向下取整
4、SELECT TRUNCATE(1.6666,1); #truncate截断
5、SELECT MOD(10,3); #mod取余
六、日期函数
1、SELECT NOW(); #返回当前日期+时间
2、SELECT CURDATE(); #返回系统日期
3、SELECT CURTIME(); #返回当前系统时间
4、SELECT YEAR(NOW()); #用于指定部分,年、月、日、时、分、秒
5、SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d'); #将指定的格式转换成日期
6、SELECT DATE_FORMAT(NOW(),'%Y-%c-%d'); #将指定字符转换成字符格式
七、其他函数
1、SELECT VERSION(); #查看版本
2、SELECT DATABASE(); #查看当前所在表
3、SELECT USER(); #查看当前是用什么用户登录mysql的
八、流程控制函数
1、SELECT IF(10<5,'da','xiao'); #比对大小,加以判断
2、SELECT CASE WHEN salary>3000 THEN '真' ELSE '假' END FROM employees; #与Java的switch一样
十、分组函数
1、SELECT SUM(salary) FROM employees; #sum求和
2、SELECT AVG(salary) FROM employees; #avg求平均
3、SELECT MAX(salary) FROM employees; #max最大值
4、SELECT MIN(salary) FROM employees; #min最小值
5、SELECT COUNT(salary) FROM employees; #count计算个数
十一、分组查询
1、SELECT MAX(salary),job_id FROM employees GROUP BY last_name; #进行分组查询
2、SELECT MAX(salary),job_id,salary FROM employees GROUP BY last_name,salary ORDER BY job_id DESC; #也可进行排序
十二、连接查询
SQL99
1、SELECT last_name,department_name FROM departments d INNER JOIN employees e ON e.department_id = d.`department_id`; #等值连接(注:必须起别名)
2、非等值连接需复习
3、SELECT e.last_name,m.last_name FROM employees e JOIN employees m ON e.`manager_id`=m.`employee_id`; #自连接
#懒得写了,其他自己补总共有sql92和sql99自己百度
十三、分页查询
#分页查询语句放在最后面!
1、SELECT * FROM employees LIMIT 0,5; #表示显示五行
2、SELECT * FROM employees LIMIT 5,5; #表示显示第五行以后的五行
3、SELECT * FROM employees ORDER BY last_name DESC LIMIT 0,5; #倒序查询第0到第五个参数
十四、DML语言(表中的内容管理)
插入语句:
方式一、为确保数据的连贯性精准性(推荐),sql199
1、INSERT INTO beauty(id,NAME,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`) VALUES(13,'愣头青','男','1996-3-24',1 88,NULL,2);
#插入语句(insert into 表名(列名,...) values(值1,...)),注意必须要跟表的约束信息一致,如不一致将创建失败
方式二、为先存储后完善(试用与临时保持),添加起来繁乱,sql192
1、INSERT INTO `beauty` SET id=14,NAME='愣头青',phone='999'; #无添加的部分为默认,系统会默认设置!
#插入语法(insert into 表名 set 列名=值1,列名=值2,...),这方法比较简单吧
修改语句:
方式一、修改单个表时用到的方式,简单、易错(按需求来玩),sql192
1、UPDATE `beauty` SET NAME='11223344' WHERE id LIKE'13'; #注:如不添加判断则修改所有表
#左外右外全外连接需要复习
删除语句:(delete、truncate)
方式一、语法:delete from 表名 where 筛选条件
1、DELETE FROM `beauty` WHERE phone=123456789101;
方式二、语法truncate 关键字(一删全删);
1、TRUNCATE jjj; #删除的是表中的所有数据,而不是表(不能使用where判断注意)
十五、DDL语言(库、表的管理)
创建库
方法一、语法:create database (IF NOT EXISTS) 库名
1、CREATE DATABASE oldboy;
2、CREATE DATABASE IF NOT EXISTS oldboy; #检查是否已存在(IF NOT EXISTS)
库的修改(只能修改库名)
方法一、语法:暂时不会....(rename)
删除库
方法一、语法drop database 库名
1、drop database oldboy; #库一般不删除,如要删除请先保存在tmp目录下!做个脚本两年后删除,以防不测
表的创建
方法一、语法create table 表名(
列名 列的类型[(长度)约束条件],
列名 列的类型[(长度)约束条件,
...)
表的修改
#修改列名及约束条件
1、ALTER TABLE employees CHANGE COLUMN last_name last_names VARCHAR(20);
#修改列的类型或约束
1、ALTER TABLE employees MODIFY COLUMN last_names VARCHAR(16);
#添加新列
1、ALTER TABLE employees ADD COLUMN od INT;
#删除列
1、ALTER TABLE employees DROP COLUMN od;
#修改表名
1、ALTER TABLE employees RENAME TO employeesdd;
表的复制
#复制表的结构
1、CREATE TABLE abc LIKE employees; #仅复制表的结构
2、CREATE TABLE qqq SELECT * FROM employees; #复制表的结构加数据
3、create table sss select last_name select employees where 筛选条件; #复制部分数据