SQL学习笔记总结 基础部分一、基本概念 1 什么是SQL: SQL就是结构化查询语言 2 RDBMS: 关系型数据库管理系统 3 SQL的语言的作用: SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限 二、SQL语句分类 1) DDL 数据定义语言: SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。 重要的SQL DDL语句: 1 CREATE DATABASE - 创建新数据库 2 ALTER DATABASE - 修改数据库 3 CREATE TABLE - 创建新表 4 ALTER TABLE - 变更(改变)数据库表 5 DROP TABLE - 删除表 6 CREATE INDEX - 创建索引(搜索键) 7 DROP INDEX - 删除索引 2) DML 数据操作语言 常见的DML语句: 增删改查 1 SELECT - 从数据库表中获取数据 2 UPDATE - 更新数据库表中的数据 3 DELETE - 从数据库表中删除数据 4 INSERT INTO - 向数据库表中插入数据 三、 SQL语句讲解 1) select 语句: select * from 表名; select 列名 from 表名; select distinct 列名 from 表名; select distinct 列1,列2 from 表名 筛选列1和列2值都一样的行,只显示一个 2) where 语句: 用于规定选择标准 select 列名 from 表名 where 列名 值(表达式) where语句中常用的表达式: = 等于 <> 不等于 > 大于 < 小于 >= 不小于 <= 不等于 between 在某个范围内 like 搜索某种模式 and 用于基于一个条件以上对记录的连接 or 运算符用于基于一个以上的条件对记录进行过滤 3) order by 语句: 用于对结果集排序 order by 语句用于对列的排列,默认是按升序排序的,可以使用desc关键字按降序排序。order by 后面可以跟多个列,排序优先顺序是 先按order by后面的第一个列排序,再排下一个,以此类推…… 4) insert into 语句: 语句用于向表格中插入新的行 insert into 表名 values(值1,值2,……) insert into 表名 (列1,列2,……) values (值1,值2,……) 5) update 语句: update 语句用于修改表中的数据, 语法格式: update 表名 set 列名=新值 where 列名=某值 【对表中所有满足条件的行进行的修改】 60 delete 语句: 删除表中的行 语法格式: delete from 表名 where 列名=值 delete from 表名 删除所有行 delete * from 表名 删除所有行 高级部分一、基本语句 1) TOP 子句: TOP 子句用于规定要返回的记录的数目,该语句不是所有数据库都支持,不同数据库有不同的语法, MySql中语法: SELECT column_name(s) FROM table_name LIMIT number 此语句按表中顺序,从开始查询number个行数据 2) like操作符: like操作符用于在where 语句中搜索列中指定的模式 语法格式: select 列名 from 表名 where 列名 like 模式 3) 通配符: 在数据库操作中,可以用通配符代替字符,SQL中的通配符必须和like运算符在一起使用,常见的通配符及其作用如下: % 代替一个或者多个字母 _ 仅替代一个字符 [charlist] 字符列中的任何单一字符 [^charlist] 不在字符列中的任何单一字符 [!charlist] 不在字符列中的任何单一字符 4) in 操作符: in 操作符允许我们在where语句中规定多个值 语法格式: select 列名 from 表名 where in(value1, value2...) 5) between 操作符: 用于在两个值得范围之间选取数据,between后面的值可以是文本,数字和日期 语法格式: select 列名 from 表名 where 列名 between 值1 and 值2 select 列名 from 表名 where 列名 not between 值1 and 值2 表示选取规定范围之外的值 6) Alias 别名:使用此语句为列名指定别名 表的Alias语法: SELECT column_name(s) FROM table_name AS alias_name 列的Alias语法: SELECT column_name AS alias_name FROM table_name 7) join 语句 8) inner join 语句 9) left join 语句 10) right join 语句 11) full join 语句 12) union和union all语句 union 语句用来合并两个或者多个select 语句的结果集,使用union语句必须保证每条select语句都有相同的列, 并且相同的列有相似的数据类型;union all语句和union语句一样,二者区别在于union all语句会显示所有的数据, union语句对于重复数据只显示一个 13) select into语句 14) create database 数据库名 用于创建数据库 15) create table 语句用于创建数据库中的表 语法格式: CREATE TABLE 表名称( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, ...... ) 16) create index创建索引 17) drop 撤销语句 18) alter 用于在已有的表中添加,删除或修改列 在表中添加列 alter table 表名 add 列名 数据类型 删除表中的列 alter table 表名 drop column 列名 修改列中的数据类型 alter table 表名 alter column 列名 数据类型 19) auto_increment字段 在新纪录插入表中时生成一个唯一的数字 20) 创建视图view 21) null值 is null is not null 常用作条件来查找数据 22) group by 语句 常用于对合计函数统计后的数据排列,合计函数统计的结果是group by后面的列为集合单位的 例如, select name,sum(number) from a group by name 把name对应下的同名的值相加分别显示 23) having 使用having的原因是where语句不能和合计函数一起使用,是一种条件过滤语句二、SQL约束(Constrains) 1) not null 强制列不接受空值 2) unique 约束唯一标识数据库表中的每条记录,primary key和unique都为数据库表的列或者列集合提供了唯一性的保证, primary key拥有自定义的unique,注意每个表可以有多个unique,但是只能有一个primary key ; 不同的数据库有不同的语法格式, MySql中如下: CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), FirstName varchar(255), UNIQUE (Id_P) ) 如果需要给unique命名以及为多列命名,可以: CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 如果表已经创建好,需要追加unique约束,可以: alter table 表名 add unique(列名) [一次只能约束一个列] alter table 表名 add constrain unique约束的名称 unique(列1,列2...) 如果需要撤销约束,可以: alter table 表名 drop index unique约束的名称 3) primary key约束 约束唯一标识数据库表中的每条记录,主键必须包含唯一的值,每一个表应该有一个主键并且只有一个主键,主键值不能为null 主键约束和unique约束的用法一样,格式一样,可以追加,撤销主键,还可以为多个列设置主键 4) foreign Key外键约束 ; 一个表中的外键foreign指向另一个表的主键primary key 外键约束的作用: 一、 该约束用于预防破坏表之间连接的动作 二、 该约束也可以预防非法数据插入到外键列,因为它必须指向另外一个表的值之一 如果需要命名外键并且为多个列创建外键,可以: constrain 外键名 foreign key(值1,值2,……) references 表名(列名) 还可以撤销外键 alter table 表名 drop foreign key 外键名 还可以增加外键 alter table 表名 add foreign key(列) references 表名称(列) 5) check约束 用于约束列的取值范围 6) default约束 函数一、函数分类 函数基本类型: Aggregate 函数(合计函数)[操作面向一系列的值并返回一个值] Scalar 函数[操作面向一个单一的值,返回基于输入值得单一的值]二、函数详解 1)avg() 返回平均值 语法格式: select avg(列名) from 表名称 2)count() 返回匹配指定条件的函数 语法格式: select count(列名) from 表名称 SELECT COUNT(DISTINCT column_name) FROM table_name 返回指定列不同值得数目 max() min() sum() 3) ucase() 把字段值改为大写 lcase() 把字段值改为小写 4) mid() 从文本字段中提取字符 SELECT MID(column_name,start[,length]) FROM table_name 参数 描述 column_name 必需。要提取字符的字段。 start 必需。规定开始位置(起始值是 1)。 length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。 如: SELECT MID(City,1,3) as SmallCity FROM Persons 5) len() 返回文本字段的长度 SELECT ROUND(column_name,decimals) FROM table_name 参数 描述 column_name 必需。要舍入的字段。 decimals 必需。规定要返回的小数位数。 6) now() 返回当前时间 7) format() 用于对字段的显示格式化 SELECT FORMAT(column_name,format) FROM table_name 参数 描述 column_name 必需。要格式化的字段。 format 必需。规定格式。
详细解决方案
SQL语言基础入门小结
热度:228 发布时间:2016-05-05 09:35:55.0
相关解决方案