MySQL语句

MySQL语言

DDL(Date definition language)数据定义语言

  • CREATE
  • DROP
  • ALTER
#创建用户
create user 用户名;
密码可以通过alter进行修改调用password函数
或者通过给权限方式设置密码
#创建数据库
`语法`
CREATE DATABASE IF NOT EXISTS 数据库名字 charset utf8 collate utf8_general_ci;
`例子`
CREATE database if not exists mymysql charset utf8 collate utf8_general_ci;
#创建表
`语法`
CREATE TABLE 表名字(
	字段1 类型 约束 ,
	字段2 类型 约束 ,
	字段3 类型 约束 
);
`例子`
create table tb_user (
     ID  int  not null auto_increment primary key comment '名字',
     name char(10) not null unique comment '名字',
     gender enum('男','女') comment '性别',
     status char(10) comment '状态'
);
#删除表
`语法`
drop table if exists 表名;
`例子`
drop table if exists tab_user ;
#删除数据库
`语法`
drop database if exists 数据库名;
`例子`
drop database if exists mymysql;
#增加表字段(列)
`语法`
ALTER TABLE 表名 add 列名 类型
`例子`
alter table mymysql.tab_user add  money char(10) not null default 1000 after name ; 
#删除表字段(列)
`语法`
ALTER TABLE 表名 drop 列名 
`例子`
alter table mymysql.tab_user drop  money  ; 
#重命名表字段(列)
`语法`
ALTER TABLE 表名 change 列名 新名字 新名字的属性(约束);
`例子`
alter table mymysql.tab_user change  money  salary char(10) not null default 1000 after name;
#修改表字段(列)
`语法`
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
alter table 表名称 modify 字段名称 字段类型 [是否允许非空];
`例子`
alter table mymysql.tab_user change  salary  salary char(10) not null after status  ;
alter table mymysql.tab_user modify   salary char(10) not null default 1000  after gender ;
#增加索引
`语法`
ALTER TABLE 表名 ADD INDEX 索引名字(字段);
`例子`
Alter table mymysql.tab_user  add index  index_name(name);
#删除索引
`语法`
ALTER TABLE 表名 drop INDEX 索引名字;
`例子`
Alter table mymysql.tab_user  drop index  index_name;
#添加外键
ALTER TABLE 表
ADD CONSTRAINT 约束名
FOREIGN KEY(作为外键的列)
REFERENCES 那个表(那个字段)

ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`);
#删除外键
##删除外键
ALTER TABLE student DROP FOREIGN KEY FK_gradeid;
##发现执行完上面的,索引还在,所以还要删除索引
##注:这个索引是建立外键的时候默认生成的
ALTER TABLE student DROP INDEX FK_gradeid;

SHOW的用法

#查询有哪些数据库
show databases;
#查询有哪些表
show tables;
#查询建库语句
show create database 库名字
#查询建表语句
show create table 表名字
#查询变量
show variables like "%coll%";
#查用户权限
show grants for root@'%';
#查看索引
show index from 表名字
#显示一些系统特定资源的信息,例如,正在运行的线程数量
show status;
#显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
show table status;
# 显示最后一个执行的语句所产生的错误、警告和通知
show warnings ;
# 显示安装以后可用的存储引擎和默认引擎
show engines ;
#只显示最后一个执行语句所产生的错误
show errors ;


DESC的用法

#desc降序,与order by配合使用,asc是升序
#查询表结构
desc 表名字

DML(DATA Manipulation language)数据操作语言

  • insert
  • update
  • delete、TRUNCATE
#插入数据的使用
INSERT into 表名字(字段1,字段2,字段3)values(字段值1,字段值2,字段值3)(字段值1,字段值2,字段值3);
INSERT INTO student('name','pwd','sex')values('张三','123','男'),('李四','456','女')#更新数据
语法:UPDATE 表名 SET 'colnum_name'='value' where判断条件
UPDATE student set 'name'='王','pwd'='123' where id=1;
#删除数据
语法:DELETE from 表名[where 条件]
TRUNCATE命令
作用:完全清空一个数据库,表的结构和索引不会变。
-- 清空student表
TRUNCATE 'student'
DELETE与TRUNCATE的区别
`相同点:都可以删除数据,且不改变表的结构,但是TRUNCATE速度更快。`
`不同点:使用TURNCATE删除表,可使自增的计数器回到初始计数状态;且不会对事务有影响`
delete table from tab_user where ID =  2 ;
truncate table tab_user;

DCL(DATA Control language)数据控制语言

  • grant
  • revoke
#给权限
语法:GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名' identified by '密码'with grant option;
grant all privileges on *.* to root@'%' identified by '123456' with grant option ;
#取消权限
语法:REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
REVOKE ALL ON mytest.students FROM 'myuser'@'localhost';

权限 说明
ALL,ALL PRIVILEGES 所有权限
SELECT 查询数据
INSERT 插入数据
UPDATE 更新数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库、表、视图
CREATE 创建数据库、表

DQL(DATA query language)数据查询语言

  • SELECT
#查询
SELECT 字段1,字段2 from 表名字 where 条件  group by 字段 having 条件  order by 字段  limit 05#执行顺序
from–>where–>group by -->having–>select–>order by
#基础查询
SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;
SELECT * FROM 表名 ; 1
SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;
SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;
SELECT DISTINCT 字段列表 FROM 表名;#去重复查询
#条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表 ;

#聚合函数
SELECT 聚合函数(字段列表) FROM 表名 ;
count
max
min
avg
sum
#分组查询
SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];
 where与having区别执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组
之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
#排序查询
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;
ASC : 升序(默认值)
DESC: 降序
#分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ; 1
 起始索引从0开始,起始索引 = (查询页码 - 1* 每页显示记录数。
 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10

本文作者:迷茫的28岁

本文链接:https://www.cnblogs.com/zheng520/p/16667488.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   迷茫的28岁  阅读(29)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 岁月神偷 金玟岐
岁月神偷 - 金玟岐
00:00 / 00:00
An audio error has occurred.

作词 : 金玟岐

作曲 : 金玟岐

编曲 : 薛琳可

能够握紧的就别放了

能够拥抱的就别拉扯

时间着急的冲刷着

剩下了什么

原谅走过的那些曲折

原谅走过的那些曲折

原来留下的都是真的

纵然似梦啊半醒着

笑着哭着都快活 谁让~

时间是让人猝不及防的东西

时间是让人猝不及防的东西

晴时有风阴有时雨

争不过朝夕又念着往昔

偷走了青丝却留住一个你

岁月是一场有去无回的旅行

岁月是一场有去无回的旅行

好的坏的都是风景

别怪我贪心只是不愿醒

因为你只为你愿和我一起

看云淡风轻

能够握紧的就别放了

能够握紧的就别放了

能够拥抱的就别拉扯

时间着急的冲刷着

剩下了什么

原谅走过的那些曲折

原谅走过的那些曲折

原来留下的都是真的

纵然似梦啊半醒着

笑着哭着都快活 谁让~

时间是让人猝不及防的东西

时间是让人猝不及防的东西

晴时有风阴有时雨

争不过朝夕又念着往昔

偷走了青丝却留住一个你

岁月是一场有去无回的旅行

岁月是一场有去无回的旅行

好的坏的都是风景

别怪我贪心只是不愿醒

因为你只为你愿和我一起

看云淡风轻

时间是让人猝不及防的东西

时间是让人猝不及防的东西

晴时有风阴有时雨

争不过朝夕又念着往昔

偷走了青丝却留住一个你

岁月是一场有去无回的旅行

岁月是一场有去无回的旅行

好的坏的都是风景

别怪我贪心只是不愿醒

因为你只为你愿和我一起

看云淡风轻