信息技术教学网站开发,菠菜网站模板,seo公司哪家好咨询,钱江摩托车官网本篇文章来回顾一下MySQL的基本操作之DDL#xff0c;DML#xff0c;DQL#xff0c;DCL#xff0c;每种操作都有各自不同的语法#xff0c;常用的操作汇总如下。一、DDL-数据定义语言作用#xff1a;数据定义语言主要用来定义数据库中的各类对象#xff0c;包括用户、库、… 本篇文章来回顾一下MySQL的基本操作之DDLDMLDQLDCL每种操作都有各自不同的语法常用的操作汇总如下。一、DDL-数据定义语言作用数据定义语言主要用来定义数据库中的各类对象包括用户、库、表、视图、索引、触发器、事件、存储过程和函数等。常见的DDL操作的基本用法如下CREATE USER #创建用户CREATE DATABASE #创建数据库CREATE TABLE #创建表CREATE VIEW #创建视图CREATE INDEX #创建索引CREATE TRIGGER #创建触发器CREATE EVENT #创建事件CREATE PROCEDURE #创建存储过程CREATE FUNCTION #创建自定义函数...其他不常用的DDL(如TABLESPACE)操作可自行查阅资料...1、创建用户用法username参数解释username:表示登陆MySQL实例的用户名[ip/domain/ip range]:表示数据库实例允许的登陆ip域名或者ip段示例创建一个名称为bingwang登陆ip为192.168.0.10的用户bingwang2、创建数据库用法CREATE DATABASE db_name;示例创建一个名称为test_db字符集为utf8的数据库mysql CREATE DATABASE test_db DEFAULT CHARSET UTF8;3、创建表用法CREATE TABLE table_name;示例创建一个名称为t_test字符集为utf8存储引擎为InnoDB字符校验集为utf8_general_ci的表CREATE TABLE t_test ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(id) ) ENGINE InnoDB DEFAUL CHARSET UTF8 COLLATE utf8_general_ci;4、创建视图详细用法CREATE VIEW view_name as ;参数解释 查询语句示例创建一个视图t_view用来查询t_test中的ID为1或者2的数据FROM t_test WHERE id IN (1,2);查看创建视图的过程mysql SHOW CREATE VIEW test_view;5、创建索引 有两种方法CREATE和ALTER下面先介绍一下CREATE的语法用法INDEX index_name ON table_name(field[num]) ;参数解释 UNIQUE表示创建的索引类型为唯一索引如果创建的为一般索引可以忽略该选项table_name表名称field表中的某个字段。num为可选参数如果field为字符创类型表示给该字段的前num个字符创建索引OPTIONS表示可选选项可以指定索引使用的算法比如USING BTREE。不指定默认为BTREE示例(1)给t_test表中的name字段添加一个唯一索引使用BTREE作为其索引算法CREATE UNIQUE INDEX name_ind ON t_test(name) USING BTREE;(2)给t_test表中的name字段的前5个字符创建一般索引使用BTREE作为其索引算法CREATE INDEX name_index ON t_test(name(5));关于索引的更多用法及优化在后面的文章中会详细讲解。6、创建触发器用法CREATE TRIGGER trigger_name trigger_time trigger_event FOR EACH ROW BEGIN trigger_stmt END;示例创建触发器内容稍多此处先稍微提一下后面专门章节介绍7、创建存储过程用法CREATE PROCEDURE procedure_name([proc_parameter[,...]])BEGIN ...存储过程体END示例创建存储过程内容稍多此处先稍微提一下后面专门章节介绍8、创建自定义函数CREATE FUNCTION function_name([func_parameter[,...]])RETURNS typeBEGIN...函数体END示例创建自定义函数内容稍多此处先稍微提一下后面专门章节介绍至此简单的DDL操作介绍完成。二、DML-数据操纵语言作用用来操作数据库中的表对象主要包括的操作有INSERTUPDATEDELETE常见的DML的基本操作方法如下#给表中添加数据INSERT INTO ...#修改表中的数据UPDATE table_name SET ...#删除表中的数据DELETE FROM table_name WHERE ;注意表示DML操作时的条件1、向表中插入数据用法INSERT INTO table_name(field1,field2,[,...]) values(value1,value2),(value3,value4),...;示例向学生表中插入一条数据name:xiaohong, age:24, gender:M 如下(1)创建表CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL DEFAULT , age TINYINT, gender ENUM(F,M) ) ENGINE InnoDB DEFAULT CHARSET UTF8;(2)插入数据INSERT INTO student(name,age,gender) VALUES(xiaohong,24,M);注意主键如果自动递增插入时可不用指定2、修改表中的数据用法UPDATE table_name SET field1 value1, field2 value2, ... , WHERE ;示例将student表中id为1的记录中的name值修改为:xiaohua如下xiaohua WHERE id 注意此处修改的时候一定得注意加条件否则整个表都会被改。讲个技巧在MySQL的命令中执行操作的时候可以在登录MySQL时添加-U选项如果忘加条件会被阻止执行sql语句。登录命令如下WB-BLOG ~]# mysql -uroot -proot -U -h127.0.0.1 -P3306可见登录之后如果不加条件执行UPDATE语句会被阻止3、删除表中的数据详细用法mysql DELETE FROM table_name WHERE ;示例删除student表中id为1的记录如下1;注意 注意注意再注意该操作非常危险命令行中操作时需要万分注意。可以使用登录时加-U参数的方式防止忘加条件而删除所有数据加了-U参数之后如果不加条件会被阻止执行结果如下mysql DELETE FROM student;ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column至此DML操作介绍完毕。三、DQL-数据查询语言作用主要用来查看表中的数据也是平时使用最多的操作主要命令为SELECT基本用法如下mysql SELECT fields FROM table_name WHERE ;注意fields表示要查询的字段列表可以使用代替但是在程序中最好别写因为使用*一方面会降低SQL的查询效率查询到一些用不到的字段另一方面使用一些ORM框架时如果数据库中字段有变动可能会立刻导致程序报错。1、不加条件的单表查询用法mysql SELECT * FROM table;示例略。2、单表中的条件查询 常见的条件 !INNOT INLIKENOT LIKEREGEXP示例23的记录注意(1)当某个字段上有索引时使用上述的反向查询或者前模糊查询如!NOT LIKENOT INLIKE %test将会不走索引(2)查询中的潜在问题如果某个字段在创建表结构的时候未设置非空则使用WHERE name!BING的时候将不会包含name为NULL的记录示例查询student表中年龄大于xiaohong年龄的记录的数量SELECT COUNT(*) FROM student WHERE age (SELECT age FROM student WHERE name xiaohong);3、分页查询用法mysql SELECT * FROM table_name LIMIT start,num;参数解释start:开始位置默认从0开始num:偏移量即从开始位置向后查询的数据条数示例查询test表中第二页的数据每页显示10条如下1,4、使用ORDER BY对查询结果进行排序基本用法SELECT * FROM table_name ORDER BY ASC/DESC;示例从student表中查询出所有年龄大于20的学生记录并且按照年龄age倒序排列如下20 ORDER BY age DESC;注意如果在排序时ORDER BY 之后没有添加DESC和ASC关键字默认按照ASC升序排列5、使用GROUP BY对查询结果集进行分组用法mysql SELECT res FROM table_name GROUP BY ;示例查询student表中男生和女生的数量mysql SELECT gender,COUNT(*) FROM student GROUP BY gender;6、使用GROUP BY之后在使用HAVING完成分组之后的条件查询用法SELECT res FROM table_name GROUP BY ;示例查询student_course表中有3门成绩大于等于80的学生学号(1)创建测试表结构CREATE TABLE student_course( sno INT(11) NOT NULL, cno INT(11) NOT NULL, grade SMALLINT NOT NULL DEFAULT 0)ENGINE InnoDB DEFAULT CHARSET UTF8;(2)插入测试数据INSERT INTO student_course(sno,cno,grade) VALUES(1,100,79);(3)查询80 THEN 四、DCL-数据控制语言作用用来授予或回收访问数据库的某种特权并控制数据库操纵事务发生的时间及效果。1、GRANT授予用户权限基本用法mysql GRANT priv_type ON TO user ;示例给用户jerry授予对test_db数据库的增删改查权限允许该用户从IP为192.168.0.10的网络登录(1)方法一jerry(2)方法二jerry2、REVOKE收回用户权限用法mysql REVOKE priv_type ON FROM jerry192.168.0.10;示例收回用户对test_db库的删除权限jerry3、查看给某个用户所授予的权限用法mysql SHOW GRANTS FOR user;示例查询给jerry192.168.0.10所授予的所有权限jerry4、查询可授予的所有权限使用技巧(1)授予所有权限 首先将某个库(如test_db)的所有权限授予给用户jerrylocalhostjerry(2)收回某个权限 如查询权限jerry(3)查看剩余权限 这样就可以查到除了查询权限之外的权限再加上查询权限即可授予的所有权限如下jerry 至此MySQL的基本操作DDLDMLDQLDCL介绍完毕。关注菜鸟封神记定期分享技术干货点赞和在看是最大的支持感谢↓↓↓