mysql之SQL基础

1.DDL:数据定义语言

DDL就是对数据库内部I的对象进行创建、删除、修改等操作的语言。

创建数据库:

CREATE DATABASE dbname;
参数:dbname:数据库名称。

选择要操作的数据库:

USE dbname;
参数:dbname:数据库名称。

查看数据库所有的表:

show TABLES;

删除数据库:

DROP DATABASE dbname;
参数:dbname:数据库名称。

创建表:

CREATE TABLE table1(id SMALLINT PRIMARY KEY NOT NULL,name VARCHAR(20));
参数:table1:表名;id,name表中的列。

查看表的定义的部分信息:

DESC table1;
参数:table1:表名。

查看表的定义的全部信息:

SHOW CREATE TABLE table1;
参数:table1:表名。

删除表:

DROP TABLE table1;
参数:table1:表名。

修改表字段的类型:

ALTER TABLE table1 MODIFY name VARCHAR(30);
参数:table1:表名;name:表的列名。

增加表的字段:

ALTER TABLE table1 ADD gender VARCHAR(2);

参数:table1:表名;gender:表的列名。

删除表的字段:

ALTER TABLE table1 DROP gender;
参数:table1:表名;gender:表的列名。

修改表字段的名称:

ALTER TABLE table1 CHANGE gender age INT;
参数:table1:表名;gender,age:表的列名。

修改表名:

ALTER TABLE table1 RENAME table2;
参数:table1,table2:表名。

2.DML:数据操纵的语言

DML是对数据库中表记录的操作,主要包括表记录的插入、更新、删除和查询。

对表中所有的列都插入数据的完整写法:

INSERT INTO table2(id,name,age) VALUES(1,'张三',12);
参数:id,name,age:列名;1,'张三',12:记录。

对表中指定列插入数据:

INSERT INTO table2(id,age) VALUE(2,11);
参数:id,age:列名。

对表中所有的列都插入数据:

INSERT INTO table2 VALUES(4,'李四',40);
参数:4,'李四',40:记录。

对表中全部列更新:

UPDATE table2 SET name='王五';
参数:table2:表名,name:列名。

对表中指定列更新:

UPDATE table2 SET name='赵六' WHERE age=11;
参数:age=11:条件。

对表中多个字段更新:

UPDATE table2 SET name='赵六',age=50;

删除指定字段对应的记录:

DELETE FROM table2 WHERE id=4;

删除多个表的指定的列对应的记录:

DELETE a,b FROM tab_memory a,table2 b WHERE a.username='zhangsan' and b.id=3;
参数:a,b:表tab_memory,table2的别名。

查询不重复的记录:

SELECT DISTINCT name FROM table2;

条件查询:

SELECT * FROM table2 WHERE id=2;
参数:table2:表名;id=2:条件。

查询结果按条件进行排序:

SELECT * FROM table2 ORDER BY age DESC;
参数:DESC:降序排序;ASC:升序排序(默认)。

查询结果按条件升序排序,起始量为1处开始取,向下取3条记录:

SELECT * FROM table2 ORDER BY age LIMIT 1,3;
参数:1:起始量;3:取出的记录数。

使用聚合函数查询记录数:

SELECT COUNT(*) FROM table2;

使用分组的方式按条件查询:

SELECT name,id FROM table2 GROUP BY age HAVING id=4;
解释:以age为标准进行分组,取出分组后条件id=4的记录。

内连接查询两张表:

table2:


table3:


SELECT name,age,gender FROM table2,table3 WHERE table2.id=table3.uid;

左外连接查询两张表:

SELECT name,age,gender FROM table2 LEFT JOIN table3 on table2.id=table3.uid;

右外连接查询两张表:

SELECT name,age,gender FROM table3 RIGHT JOIN table2 on table3.uid=table2.id;

对表的子查询:

SELECT * FROM table2 WHERE id IN(SELECT uid FROM table3);

对表的子查询(有唯一子结果):

SELECT * FROM table2 WHERE id=(SELECT uid FROM table3);

记录联合:

SELECT name FROM table2 UNION ALL SELECT gender FROM table3;

记录联合再去重:

SELECT name FROM table2 UNION SELECT gender FROM table3;

3.常用函数

字符串拼接函数:

SELECT CONCAT('aaa','bbb','ccc') AS '拼接结果';

解释:将多个字符串进行拼接。

字符串替换函数:

SELECT INSERT('hangzhou2016you',13,3,'me');

解释:将字符串hangzhou2016you从第13个字符开始以后的3个字符替换成me

字符串比较函数:

SELECT STRCMP('a','b');

解释:比较两个字符串的ASCII值的大小。如果两个字符串相等那么返回0,如果第一个位置的字符串大于第二个位置的就返回1,否则返回-1。

求子串的函数:

SELECT SUBSTRING('beijing2008',8,4);
解释:返回从字符串beijing2008的第八个位置的字符起,往后截取4个字符长度的字符串。

求当前日期的函数:

SELECT CURDATE();
解释:返回当前日期。

求当前时间的函数:

SELECT CURTIME();
解释:返回当前时间。

求当前日期时间函数:

SELECT NOW();
解释:返回当前日期时间。

条件函数1:

SELECT if(age<20,'年轻','衰老') AS '青春' FROM table2;
解释:从table2的表中查询年龄age,如果age<20,则存储年轻,否则存储衰老。

条件函数2:

SELECT CASE WHEN age<20 THEN '年轻' ELSE '衰老' END FROM table2;
解释:结果与条件函数1一样也是,用来做条件判断的。

求当前数据库名称:

SELECT DATABASE();

求当前数据库版本:

SELECT VERSION();

求登录的用户名:

SELECT USER();

求IP地址的数字表示:

SELECT INET_ATON('192.168.1.1');
解释:主要就是把字符串形式的IP地址转换为数字表示的网络字节序。

求数字代表的IP地址:

SELECT INET_NTOA(3232235777);

将字符串转换为MD5值:

SELECT MD5('123456');

结果:

e10adc3949ba59abbe56e057f20f883e












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值