SQL statement using base

SQL statement using the base

SQL statement is divided into three categories, DDL, DML and DCL.

  • DDL data definition statements, database objects defined by definition different data segments, databases, tables, columns, indexes and so on.
  • DML statements manipulate the data, add, delete, update and query the database record and checks data integrity.
  • DCL is a data control statement to control the licensing and direct access to different levels of data segments statements. These statements define the databases, tables, fields, user access rights and security levels.

A. DDL statements (Data Definition Language)

Create a database

create database dbname;(数据库名称)

View database

show databases;

Choose to use the database

use dbname;

Delete Database

drop database dbname;               

View database tables

show tables;

Create table
table name in the form of MySQL directory exists on the disk, character of their names can use any directory names of characters allowed.

create table tablename(column_name column_type constraints```)

See the definition of the table

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

Delete table

drop table tablename;

Modify table

//修改表类型
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;

Two, DML statements (data manipulation language)

insert

//指定字段插入
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

//单表更新
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

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

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

Inquire

//不重复查询
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会去掉重复的记录;)

Three, DCL statements (Data Control Language)

Licensing and recover

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

Released two original articles · won praise 1 · views 101

Guess you like

Origin blog.csdn.net/healerwen/article/details/104018284