- SQL 对大小写不敏感:SELECT 与 select 是相同的。
- use 数据库名; 命令用于选择数据库。
- set names utf8; 命令用于设置使用的字符集。
重要的SQL命令
- select - 从数据库中查询数据
- update- 更新数据库中的数据
- delete - 从数据库中删除数据
- insert into - 向数据库中插入新数据
- create database - 创建新数据库
- alter database - 修改数据库
- create table - 创建新表
- alter table - 变更(改变)数据库表
- drop table - 删除表
- create index - 创建索引(搜索键)
- drop index - 删除索引
select * from 表名 ; //获取”表名“的所有信息
select name,sex from student ; //获取student表中的name和sex列的信息
select distinct 语句用于返回唯一不同的值。
例如:select distinct * from student;
where 条件查询
select * from student where name = 'Danni';
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
文本字段使用了单引号。
数值字段,不用使用引号。 如:select * from student where id = 202015;
运算符
运算符 | 描述 |
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
特殊条件:
1.空值判断: is null
Select * from emp where comm is null; //查询 emp 表中 comm 列中的空值。
2.between and (在 之间的值)
Select * from emp where sal between 1500 and 3000; //查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。
3.In
Select * from emp where sal in (5000,3000,1500); //查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。
4.like
Like模糊查询
Select * from emp where name like 'M%';
查询 EMP 表中 name 列中有 M 的值,M 为要查询内容中的模糊信息。
- % 表示多个字值,_ 下划线表示一个字符;
- M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
- %M% : 表示查询包含M的所有内容。
- %M_ : 表示查询以M在倒数第二位的所有内容。
insert into 语句用于向表中插入新数据
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可(需要列出插入行的每一列数据):
insert into table_name
values(value1,value2,value3,...);
第二种形式需要指定列名及被插入的值(列名和值需对应):
insert into table_name (column1,column2,column3,...)
values (value1,value2,value3,...);
update 语句用于更新表中已存在的记录
update table_name
set column1=value1,column2=value2,...
where some_column=some_value;
执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
在 SQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
set sql_safe_updates=1; //表示开启该参数
delete语句用于删除表中的行
delete from table_name
where some_column=some_value;
SQL关于删除的三个语句:DROP、TRUNCATE、 DELETE 的区别。
DROP:
DROP test;
删除表test,并释放空间,将test删除的一干二净。
TRUNCATE:
TRUNCATE test;
删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在。
DELETE:
1、删除指定数据
删除表test中年龄等于30的且国家为US的数据
DELETE FROM test WHERE age=30 AND country='US';
2、删除整个表
仅删除表test内的所有内容,保留表的定义,不释放空间。
DELETE FROM test 或者 DELETE FROM test; DELETE * FROM test 或者 DELETE * FROM test;
相同点:drop、delete、truncate 都是删除表的内容。
不同点:
- delete:删除表的内容,表的结构还存在,不释放空间,可以回滚恢复;
- drop:删除表内容和结构,释放空间,没有备份表之前要慎用;
- truncate:删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用;
执行速度:
drop > truncate > delete
关键字:
order by:用于对结果集进行排序。
例如:select * from student order by id,name; //查询student表的所有信息并按照id、name进行排序
select * from 表名 order by 字段名 desc //降序
select * from 表名 order by 字段名 asc //升序