SQL四大基本语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DT_Zhangshuo/article/details/83275318

目录

sql四种语句

数据控制语言DCL

操作用户的语句

用户权限

权限级别:

主要权限:

数据相关权限

授权方式

操作数据库的语句

数据定义语言DDL

操作表结构的语句

数据操纵语言DML

数据查询语言DQL


sql四种语句

数据定义语言,即SQL DDL,用于定义SQL模式、基本表、视图、索引等结构。
数据操纵语言,即SQL DML。数据操纵分成数据查询和数据更新两类。
数据查询语言,即SQL DQL。
数据控制语言,即SQL DCL,这一部分包括对基本表和视图的授权、完整性规则的描述、事务控制等内容。

数据控制语言DCL

操作用户的语句

CREATE USER `用户名` [@`主机地址`][IDENTIFIED BY`密码`];
@主机地址是对制定主机开放MySQL服务,默认为%,省略密码则没有密码

use mysql;
describe user;#用户列表

create user `zhangshuo`@`localhost`identified by `123`;#新建用户
update user set host=`%` where user=`zhangshuo`;#更新用户的权限,开放服务
DROP USER `zhangshuo`@`localhost`;#删除用户

用户权限

用户权限存储在mysql库的user,db,tables_priv,columns_priv,procs_priv系统表中

权限级别:

全局性管理权限,作用于整个mysql
数据库权限,作用于指定数据库上
数据库对象权限,作用于指定数据库对象

主要权限:

表结构相关权限
ALL所有权限
ALTER修改
CREATE创建
DORP删除
INDEX创建删除索引
GRANT OPTION授权或回收其他用户权限

数据相关权限

EVENT对表数据查询、创建、修改、删除
INSERT创建
DELETE删除
UPDATE修改
SELECT查询

授权方式

给用户所有数据库的所有表的所有权限。
GRANT ALL ON *.*;
例如:GRANT ALL ON `mydatebase`.`mytable` TO `zhangshuo`@`%`;

FLUSH PRIVILEGES;刷新权限立即成效
REVOKE SELECT ON `mydatebase`.`mytable` FROM `zhangshuo`@`%`;收回用户权限

操作数据库的语句

SHOW DATABASES;
CREATE DATABASE `zhangshuo`;
DROP DATABASE `zhangshuo`;
USE zhangshuo;

数据定义语言DDL

操作表结构的语句

CREATE TABLE `student`(
`studentNo` INT(4) NOT NULL PRIMARY KEY COMMENT '学号',
`loginPwd` VARCHAR(20) NOT NULL COMMENT '密码',
`sudentName` VARCHAR(50) NOT NULL COMMENT '姓名',
`sex` CHAR(2) NOT NULL COMMENT '性别',
`gradeID` INT(4) UNSIGNED COMMENT '年级编号',
`phone` VARCHAR(50) COMMENT '联系电话',
`address` VARCHAR(255) COMMENT '地址',
`bornDate` DATETIME COMMENT '出生日期',
);

DROP TABLE `student`;

修改表结构
ALTER TABLE `subject` CHANGE `subjectNo` `subjectNo` INT(4) NOT NULL AUTO_INCREMENT COMMENT '课程编号' ;
修改表名
ALTER TABLE `person` RENAME `tb_person`;
删除列
ALTER TABLE `tb_person` DROP `bornDate`;
添加列
ALTER TABLE `tb_person` ADD `bornDate` DATE COMMENT '出生日期';
添加复合主键
ALTER TABLE `result` DROP PRIMARY KEY, ADD PRIMARY KEY (`studentNo`, `subjectNo`, `examDate`);
添加外键
ALTER TABLE `result` ADD CONSTRAINT fk_student_result FOREIGN KEY (`studentNo`) REFERENCES `students`(`studentNo`);


数据操纵语言DML

INSERT INTO `subject`(`subjectNo`,`subjectName`,`classHour`,`gradeID`)VALUE(1,'Logic Java',220,1);
UPDATE `students` SET `address`='北京市海淀区',`loginPwd`='000' WHERE `studentNo`=10006;
UPDATE `subject` SET `classHour`=`classHour`-10 WHERE `classHour`>200;
CREATE TABLE `student_grade` (SELECT `studentName`,`sex`,`bornDate`,`phone`FROM `students` WHERE `gradeID`=1);

数据查询语言DQL

SELECT * FROM students WHERE age=16;
SELECT studentName FROM students WHERE gradeID=1 AND sex='女';
SELECT * FROM SUBJECT WHERE classHour>100;

猜你喜欢

转载自blog.csdn.net/DT_Zhangshuo/article/details/83275318