Sql--Sql语句简单介绍 create select update delete drop

--Sql简单的创建show databses;



create database sbpms;



use sbpms;



show tables; 



CREATE TABLE `user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(50) NOT NULL,

  `password` varchar(50) NOT NULL,

  `e_mail` varchar(50) NOT NULL,

  `role` varchar(50) NOT NULL,

  `report_to` varchar(50) NOT NULL,

  PRIMARY KEY (`id`),

  UNIQUE KEY `name` (`name`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;





LOCK TABLES `user` WRITE;

INSERT INTO `user` VALUES (1,'ROOT','202cb962ac59075b964b07152d234b70','[email protected]','SUP','SUP'),
(2,'SS','202cb962ac59075b964b07152d234b70','[email protected]','SS','SS'); UNLOCK TABLES;SELECT * FROM user;SELECT DISTINCT name FROM user

 

--表关联关系

--去除重复数据;重复的列只保留一条记录;

SELECT * FROM user WHERE id NOT BETWEEN 1 AND 2  

-- 不在1 和 2 的记录;

SELECT *  FROM user ORDER BY name DESC, role  ASC

--在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

SELECT * FROM table_name1  INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name

--只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsFULL JOIN OrdersON Persons.Id_P=Orders.Id_PORDER BY Persons.LastName



-- Top 关键字

--我们希望从上面的 "user" 表中选取头两条记录。

SELECT TOP 2 * FROM user

--我们希望从上面的 "user" 表中选取 50% 的记录。

SELECT TOP 50 PERCENT * FROM user

 



--UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

--请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。



SELECT column_name(s) FROM table_name1

UNION

SELECT column_name(s) FROM table_name2



--默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。



SELECT column_name(s) FROM table_name1

UNION ALL

SELECT column_name(s) FROM table_name2



--SQL SELECT INTO 语法  

--http://www.w3school.com.cn/sql/sql_select_into.asp

SELECT *

INTO new_table_name [IN externaldatabase] 

FROM old_tablename



 









--通过使用 DROP 语句,可以轻松地删除索引、表和数据库。  

--SQL DROP INDEX 语句

--我们可以使用 DROP INDEX 命令删除表格中的索引。

--用于 Microsoft SQLJet (以及 Microsoft Access) 的语法:  

DROP INDEX index_name ON table_name 



--用于 MS SQL Server 的语法:  

DROP INDEX table_name.index_name 



--用于 IBM DB2 和 Oracle 语法:  

DROP INDEX index_name 



--用于 MySQL 的语法:  

ALTER TABLE table_name DROP INDEX index_name



--SQL DROP TABLE 语句



--DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):  

DROP TABLE 表名称



--SQL DROP DATABASE 语句



--DROP DATABASE 语句用于删除数据库:

DROP DATABASE 数据库名称



 



--ALTER TABLE 语句用于在已有的表中添加、修改或删除列



--添加列:

ALTER TABLE table_name ADD column_name datatype



--删除表中的列:

ALTER TABLE table_name DROP COLUMN column_name



--注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。要改变表中列的数据类型,请使用下列语法:

ALTER TABLE table_name ALTER COLUMN column_name datatype



--现在我们希望改变 "Persons" 表中 "Birthday" 列的数据类型, 改为year类型("Birthday" 列的数据类型改为 year,可以存放 2 位或 4 位格式的年份)。

 ALTER TABLE Persons ALTER COLUMN Birthday year



--Auto-increment 会在新记录插入表中时生成一个唯一的数字。

--用于 MySQL 的语法

CREATE TABLE Persons

(

P_Id int NOT NULL AUTO_INCREMENT,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

PRIMARY KEY (P_Id)

)

--MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。

--默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。

--要让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法: 

ALTER TABLE Persons AUTO_INCREMENT=100



--用于 SQL Server 的语法

CREATE TABLE Persons

(

P_Id int PRIMARY KEY IDENTITY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)



--用于 Oracle 的语法

--创建名为 seq_person 的序列对象

CREATE SEQUENCE seq_person

MINVALUE 1

START WITH 1

INCREMENT BY 1

CACHE 10

-- 插入的时候去查询序列的nextval值

INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')





--创建视图

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition



--SQL 撤销视图

SQL DROP VIEW Syntax

DROP VIEW view_name



--更改表内容

UPDATE user SET id= 2 WHERE id =1;

--删除表内容

delete from user where id =2;

 

你可能感兴趣的:(select)