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','123@123.com','SUP','SUP'),
(2,'SS','202cb962ac59075b964b07152d234b70','SS@SS.com','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;