文章目录
- 在SQL中默认 0或者NULL为假,其他为真(真永远比假多)。
- SQL 对大小写不敏感 。
- SQL 语句后面要+ ; 。
一. 安装
需要使用练习,但是又不想安装,自行度娘:实验楼。
二. 基本操作
2.1 数据库的基本操作
操作目的 | 格式 | code |
---|---|---|
查看数据库列表 | show databases; | show databases; |
新建数据库 | create database 数据库名; | CREATE DATABASE database_name; |
删除数据库 | drop database 数据库名; | DROP DATABASE database_name; |
使用数据库 | use 数据库名; | USE database_name; |
找出当前选择了哪个数据库 | select database(); | SELECT DATABASE(); |
2.2 表格的基本操作
表外操作
作用 | 格式 | code |
---|---|---|
查看表格列表 | show tables; | |
新建表格 | create table 表名(列名 ); | CREATE TABLE table_name(); |
删除表格 | drop table 表名; | DROP TABLE table_name; |
表格重命名 | rename table 原名 to 新名字; | RENAME TABLE old_table_name TO new_table_name; |
表内操作(增删改查)
作用 | 格式 | code | 备注 |
---|---|---|---|
查看表格内容(数据) | select * from 表名; | SELECT * FROM table_name; | 也可以用SELECT column_name FROM table_name WHERE 约束条件; 查看更符合要求的数据 |
插入(行)数据 | insert into 表名(列名1,列名2,…) values(值1,值2,…); | INSERT INTO table_name(a,b,c) VALUES(1,'A',3.45), (2,'A',10.99); | - 可以插入单行数据;- 也可以插入多行数据;- 甚至可以插入指定列的数据 |
删除表中某一行 | delete from 表名 where 列名=值 | DELETE FROM employee WHERE name='Tom'; | 删除所有数据:DELETE * FROM table_name; |
在表格内最后增加一列 | alter table 表名 add 列名 数据类型 约束条件; | ALTER TABLE table_name ADD column_name INT(4) DEFAULT 170; | 如果要在首列前增加一列:alter table 表名 add 列名 数据类型 约束条件 first; |
在表格固定位置增加一列 | alter table 表名 add 列名 数据类型 约束条件 after 参考列名; | ALTER TABLE table_name ADD column_name INT(4) DEFAULT 120 AFTER age; | |
删除列 | alter table 表名 drop 列名; | ALTER TABLE table_name DROP column_name; | |
修改列属性/名称 | alter table 表名 change 原列名 新列名 数据类型 约束条件; | ALTER TABLE employee CHANGE height shengao INT(4) DEFAULT 170; | |
修改/更新表格中的某一个数据 | update 表名 set 列名1=新值1,列名2=新值2 where 条件 | UPDATE employee SET age=21,salary=3000 WHERE name='Tom'; |
其他操作
作用 | 格式 | code | 备注 |
---|---|---|---|
生成有关索引的信息 | show index from 表名 | SHOW INDEX FROM table_name; | |
显示表的结构 | DESCRIBE pet; | Field 显示列名字,Type 是列的数据类型,Null 表示列是否能包含 NULL 值,key 显示列是否被索引而 Default 指定列的默认值。 |
三. 小进阶
3.1 关键字
常与select连用的关键字
3.1.1 DISTINCT
【为什么要有这个关键字】
当你SELECT column_name FROM table_name WHERE 约束条件;结果发现检索出来的结果好多重复了,是不是很忧郁呀,有了DISTINCT妈妈再也不用担心这种情况了
【怎么用】
SELECT DISTINCT column_name FROM table_name WHERE 约束条件;
3.1.2 ORDER BY 与 DESC
【为什么要有这个关键字】
当你千辛万苦写完了SELECT语句后,发现你还需要对结果进行升序/降序排序,这时候是不是很抓狂,有了ORDER BY就可以实现。
【怎么用】
- 升序
SELECT column_name FROM table_name WHERE 约束条件 ORDER BY colum_name; - 降序
SELECT column_name FROM table_name WHERE 约束条件 ORDER BY colum_name DESC;
- ORDER BY 后可以加多个column_name1,column_name2
- 默认的排序是升序,即从小到大;
3.1.3 WHERE
【怎么用】
SELECT column_name FROM table_name WHERE 约束条件 ;
- 具体来说,约束条件是指:column_name 运算符 column_value
- 可用的运算符如下所示:
运算符 含义 = 等于 < 小于 > 大于 <= 小于等于 >= 大于等于 <> 不等于 BETWEEN 范围以内 LIKE 模糊匹配搜寻
- 利用 AND 和 OR 可以连接多个约束条件
3.1.4 LIMIT / TOP / ROWNUM
【为什么要出现这些关键字】
当检索出来的数据很多,而你只需要其中的前n条数据时,LIMIT / TOP 能帮你搞定。
【怎么用】
- SQL: SELECT TOP n column_name FROM table_name WHERE 约束条件;
- MySQL: SELECT column_name FROM table_name WHERE 约束条件 LIMIT n ;
- Oracle : SELECT column_name FROM table_name WHERE ROWNUM <= n ;
- 其中n代表需要的数据个数。
- TOP后除了加数字也可以加百分比,比如前百分之50的数据 :
SELECT TOP 50 PERCENT column_name FROM table_name WHERE 约束条件;