MySQL基础语法

来源:互联网 发布:app直播源码下载 编辑:程序博客网 时间:2024/05/21 08:50

常用命令

创建数据库

CREATE DATEBASE database_name

查看数据库

SHOW DATABASE

选择数据库

USE database_name

删除数据库

DORP DATABASE database_name

创建表

CRATE TABLE table_name(     Field_name data_type,     Field_name data_type,     …     Field_name data_type )

查看表定义

DESC[RIBE] table_name

删除表

DROP TABLE table_name

增加字段

ALTER TABLE table_name ADD field_name data_type

表的第一个位置增加字段

ALTER TABLE table_name ADD field_name data_type FIRST

删除字段

ALTER TABLE table_name DORP field_name

修改字段

ALTER TABLE table_name MODIFY field_name data_type

同时修改字段的名字和属性

ALTER TABLE table_name CHANGE old_field_name new_field_name new_data_type

设置外键约束

CONSTRAINT constraint_name FOREIGN KEY(filed_name) REFERENCES other_table_name(other  _field_name)

普通索引创建删除

CREATE INDEX indexName ON mytable(username(length)); DROP INDEX [indexName] ON mytable;  

唯一索引

它与前面的普通索引类似,不同的就是:MySQL数据库索引列的值必须唯一,但允许有空值。

CREATE UNIQUE INDEX indexName ON mytable(username(length))

主键索引

它是一种特殊的唯一索引,不允许有空值。可以在创建表的时候指定,也可以用Alter命令

CREATE TABLE mytable(     ID INT NOT NULL,     PRIMARY KEY(ID) );  ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

创建触发器

CREATE TIRGGER trigger_name BEFORE|AFTER DELETE|INSERT|UPDATE ON table_name FOR EACH ROW Triggle_statement 

  Triggle_statement:触发器被触发要执行的语句(增、删、改、查等等)

交叉连接:(cross join)

不带where查询条件
返回多表的记录的笛卡尔积。(第一张表:5 第二章表:7,返回5*7=35)

select * from CUSTOMER,ORDERS;

内连接(inner join)

select * from CUSTOMER c,ORDERS o where c.ID=o.CUSTOMER_id; 

显式内连接:

select * from CUSTOMER c inner join ORDERS o on c.Id=o.CUSTOMER_id;

外连接(outer join)
查看所有客户信息,同时有订单的显示订单的详细信息。
左外:返回满足连接条件的记录,同时返回左表中剩余的其他记录。

select * from CUSTOMER c left outer join ORDERS o on c.ID=o.CUSTOMER_ID;

查看所有订单信息,同时返回下单的客户信息
右外:返回满足连接条件的记录,同时返回右表中剩余的其他记录。

select * from CUSTOMER c right outer join ORDERS o on c.ID=o.CUSTOMER_ID;

UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION 这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。