SQL基础语句使用

SQL基础语句的使用

SQL语句主要分3类,DDL、DML和DCL。

  • DDL为数据定义语句,定义看不同的数据段、数据库、表、列、索引等数据库对象的定义。
  • DML为数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。
  • DCL为数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。

一. DDL语句(数据定义语言)

创建数据库

create database dbname;(数据库名称)

查看数据库

show databases;

选择使用数据库

use dbname;

删除数据库

drop database dbname;               

查看数据库表

show tables;

创建表
MySQL的表名是以目录的形式存在于磁盘上的,表名的字符可以用任意目录名允许的字符。

create table tablename(column_name column_type constraints```)

查看表的定义

desc tablename;
show create table tablename \G;
// 查看表的创建语句,信息更全面。可看到表的存储引擎engine和字符集charset等。
// “\G”是使记录能够按照字段竖着排列。

删除表

drop table tablename;

修改表

//修改表类型
alter table modify ename varchar(20);

//增加字段
alter table tablename add column age int(3);

//删除字段
alter table tablename drop column age;

//修改字段
alter table tablename change age age1 int(4);
(//change 和 modify 均可修改表的定义,但change的优点是可以修改列名称,modify不能。)

//修改字段排序顺序
alter table tablename add birth date after ename;
alter table tablename modify age int(3) first;

//更改表名
alter table tablename rename tablename1;

二、DML语句(数据操纵语言)

插入

//指定字段插入
insert into tablename (name, age) values ('zz', 21);

//顺序插入
insert into tablename values ('zz', 21, 2);

//多值插入
insert into tablename values ('aa', 22, 3),
							 ('bb', 32, 4);

更新

//单表更新
update tablename set age=42 where name='aa';

//多表更新
update tablename a, tablename1 b set a.name='aa',b.name='bb' where a.age=b.age;

删除

//单表删除
delete from tablename where name='aa';

//多表删除
delete a,b from tablename1 a, tablename2 b where a.age=b.age and a.age=21;

查询

//不重复查询
select distinct age from tablename;

//条件查询
select * from tablename where name='aa';

//排序和限制查询
select * from tablename order by deptno desc;
(//desc为降序排序,asc为升序排序,默认是升序排序。)

select * from tablename order by deptno limit 3;
(//显示排序后前三条记录。limit 属于MySQL扩展SQL92后的语法,在其他数据库不适用)

select * from tablename order by deptno limit 1,3;//从第二条记录开始,显示三条记录。)

//聚合 
select [field1,field2,```fieldn] fun_name
from tablename 
[where contition]
[group by field1,field2,```fieldn [with rollup]]
[having contition]
(/*fun_name表示聚合操作,sum、count、max、min等;
 having与where的区别是,where是聚合前对记录进行过滤,而having是对聚合后记录进行过滤。*/)
 

//表连接
 //内连接
 select * from table1,table2 where table1.age=table2.age;
 (//内连接仅选出两张表中互相匹配的记录)
 //外连接
 select * from table1 left join table2 on table1.age=table2.age;
 (/*外连接包含左连接和右连接;
    左连接查询结果包含左表中与右表不匹配的记录;
    右连接查询结果包含右表中与左表不匹配的记录。*/) 

//子查询(in、not in、=、!=、exists、not exists)
select * from table1 where age in(select age from table2);
(//若查询记录数有唯一性,可用 = 代替in)

//记录联合(union、union all)
select * from table1 union all select * from table2;
(//union会去掉重复的记录;)

三、DCL语句(数据控制语言)

授权与收回

//授权
grant select, insert on dbname.* to 'username' @ 'localhost' identified by '123';
//dbname.*指该数据库中的所有表
 
//收回
revoke insert on dbname.* from 'username' @ 'localhost'; 

发布了2 篇原创文章 · 获赞 1 · 访问量 101

猜你喜欢

转载自blog.csdn.net/healerwen/article/details/104018284