SQL命令-部分

SQL
1、对大小写不敏感
2、SQL使用单引号来环绕文本值,如果是数值,不使用引号
 -->DML(数据操作语言)执行查询
	-->SELECT(从数据库获取数据)
		select 列名称 from 表名称
		select * from 表名称
		select distinct 列名称 from 表名称	(列出不重复的项)
		select 列名称 from 表名称 where 列 运算符 值 (where后面带的是条件)
		AND OR 将WHERE子语句中把两个或多个条件结合起来(使用()来组成复杂的表达式)
		ORDER BY 用于对结果集进行排序(指定列/升序)select a,b from table order by a(从table中查询a,b两列,并根据a进行升序排列)
			select a,b from table order by a,b(满足a,b同时升序)
			select a,b from table order by a DESC (倒序排列)
			select a,b from table order by a DESC,b ASC (a倒叙并且b正序)
	-->UPDATE(更新数据库表中的数据)
		update 表名称 set 列名称=新值 where 列名称=某值
	-->DELETE(从数据库表中删除数据)
		delete from 表名称 where 列名称=值
	-->INSERT INTO(向数据库表中插入数据)
		INSERT INTO 表名称 VALUES(值1,值2,,)
		INSERT INTO 表名称 (列名称1,列名称2,,) VALUES(值1,值2,,)
	
	
	-->TOP(用于规定要返回的记录的数目)
		SQL Server语法:SELECT TOP number|percent column_name(s) FROM table_name
		mySQL语法:SELECT column_name FROM table_name LIMIT number
		Oracle语法:SELECT column_name from table_name where rownum<=number
	-->LIKE(用于在WHERE子句中搜索列中的指定模式)
		select column_name from table_name where column_name LIKE pattern  ('%'可用于定义通配符)
		select column_name from table_name where column_name NOT LIKE pattern(不包含)
	-->SQL通配符
		1、% 替代一个或多个字符
		2、_ 仅替代一个字符
		3、[ABC]ABC中任何一个单一字符 (在MYSQL中不适用,必须以正则表达式代替)
			select * from table_name where column_name regexp '^[ABC]';
			select * from table_name where column_name rlike '^[ABC]';
		4、[^ABC]/[!ABC]不是ABC中任何一个
			select * from table_name where column_name rlike '^[^ABC]';
	-->IN操作符(在WHERE子句中规定多个值,条件中同时带两个值)
		select * from table_name where column_name in ('a','b')
	-->BETWEEN 操作符(between..and会选取介于两个值之间的数据范围)
		select * from table_name where column_name between 'a' and 'c'; --输出a,b,c(MYSQL)
			不同的数据库输出的范围不同
		select * from table_name where column_name NOT BETWEEN 'a' and 'c';
	-->Alias(为列名和表名指定别名)
		表名:select column_name from table_name as alias_name   ???
		列名:select column_name as alias_name from table_name
	-->JOIN(用于根据两个或多个表中的列之间的关系,从这些表中查询数据)
		select column_name(s) from table_name1 inner join table_name2 on table_name1.column_name=table_name2.column_name order by column_name        INNER JOIN:
          SELECT column_name(s)
          FROM table1
          INNER JOIN table2 或者 JOIN table2
          ON table1.column_name=table2.column_name;
       


        LEFT JOIN:
        从左表返回所有的行,即使右表没有匹配
          SELECT column_name(s)
          FROM table1(左表)
          LEFT JOIN table2 或 LEFT OUTER JOIN table2
          ON table1.column_name=table2.column_name;
        

        RIGHT JOIN:
          SELECT column_name(s)
          FROM table1
          RIGHT JOIN table2(右表) 或 RIGHT OUTER JOIN table2
          ON table1.column_name=table2.column_name;
        

 


        FULL OUTER JOIN 只要左表和右表存在匹配就返回行
          SELECT column_name(s)
          FROM table1
          FULL OUTER JOIN table2
          ON table1.column_name=table2.column_name;

--> Union(用于合并两个或多个select语句的结果集)
		[union内部的SELECT语句必须拥有相同数量的列,列也必须是‘相同的数据类型’]
		select column_name from table_name1 UNION select column_name from table_name2  [UNION ALL重复的值也会显示]
	--> INTO(1、创建表的备份复件,2、从表中选取数据,将数据插入另一个表中)[MYSQL数据库不支持]
		select * into new_table_name from old_tablename	(将表中的所有的列插入新表)
		select column_name into new_table_name from old_tablename	(将表中的选中的列插入新表)
		select * into table_name IN 'database' from table_name(将另一个数据库拷贝表)
		[MYSQL]:create table new_table_name as select * from old_tablename
	-->INSERT INTO SELECT(从一个表复制数据,然后把数据插入到一个已存在的表中,目标表已存在的不会受影响)
		INSERT INTO table2 SELECT * FROM table1;(将table1中的所有列都插入到table1中)(表的结构一致)
		INSERT INTO table2(column_name) SELECT column_name from table1;(表的结构不一致时)
		+WHERE,加条件
	
	
 -->DDL(数据定义语言)创建或删除表格
	-->CREATE DATABASE 创建数据库
		CREATE DATABASE dbname;
	-->ALTER DATABASE 修改数据库
	-->CREATE TABLE 创建新表
		create table table_name(
		column_name1 data_type(size),
		column_name2 data_type(size),
		column_name3 data_type(size)
		);
		data_type:varchar,integer,decimal,date..
	-->CONSTRAINT(如果存在违反约束的数据行为,会被约束中止)
		create table table_name(
		column_name1 data_type(size) constraint_name,
		column_name2 data_type(size) constraint_name,
		column_name3 data_type(size) constraint_name
		);
		约束:
		NOT NULL:指示某列不能存储NULL值
			约束字段始终包含值:不添加值,就无法插入或更新数据
			create table table_name(column_name1 data_type(size) NOT NULL);[创建表]
			alter table table_name modify column_name data_type not null;[修改表]
			alter table table_name modify column_name data_type null;[删除NOT NULL]
		UNIQUE:保证某行必须有唯一的值[每一个表可以有多个UNIQUE约束]
			CREATE:
				[MYSQL]
					create table table_name(
					column_name1 data_type(size) NOT NULL,
					column_name2 data_type(size) NOT NULL,
					UNIQUE (column_name1)
					);
				[SQL server/Oracle/MS Access]
					create table table_name(
					column_name1 data_type(size) NOT NULL UNIQUE,
					column_name2 data_type(size) NOT NULL
					);
				定义多个UNIQUE:
				create table table_name(
					column_name1 data_type(size) NOT NULL,
					column_name2 data_type(size) NOT NULL,
					CONSTRAINT uc_personid UNIQUE(column_name1,column_name2)
					);
			ALTER:
				单个:
				alter table table_name
				add unique(column_name)
				多个:
				alter table table_name
				add constraint uc_personid unique(column_name1,column_name2)
			撤销:
				[MYSQL]
					alter table table_name
					drop index uc_personid
				[SQL server/Oracle/MS Access]
					alter table table_name
					drop constraint uc_personid
		PRIMARY KEY:确定列有唯一标识
		FOREIGN KEY:保证一个表中的数据匹配另一表中的值的参照完整性
		CHECK:保证列中的值符合指定的条件
		DEFAULT:规定没有给列赋值时的默认值
	-->ALTER TABLE 变更(改变)数据库表
		-->ALTER TABLE table_name TRUNCATE TABLE table_name[改变数据类型]
		-->ALTER TABLE table_name ADD column_name datatype[表中添加列]
		-->ALTER TABLE table_name DROP COLUMN column_name[删除表中列]
	-->DROP TABLE 删除表
		-->DROP TABLE table_name[删除表]
		-->DROP DATABASE database_name[删除数据库]
		-->TRUNCATE TABLE table_name[删除表中内容]
	-->CREATE INDEX 创建索引
	-->DROP INDEX 删除索引
 
 

  

posted @ 2021-02-01 13:54  Hskan  阅读(69)  评论(0编辑  收藏  举报