01-SQL语言

来源:互联网 发布:大数据的实践包括哪些 编辑:程序博客网 时间:2024/05/24 02:19

1-SQL是与关系型数据库交互的一种语言 DBMS是管理数据库de数据库管理系统

1.DDL: (Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;(创建、删除、修改),create、drop、alter. 2.DML: (Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);(增、删、改),insert、delete、update. 3.DQL: (Data Query Language):数据查询语言,用来查询记录(数据);select. 4.DCL: (Data Control Language):数据控制语言,用来定义访问权限和安全级别;grant、commit、rollback.使用注释:1. 单行注释  create database txt; --创建txt数据库         2. 多行注释  /* create database txt                      create database txt */

2-对数据库、对表操作-DDL

1.create database txt; //创建txt数据库2.show databases; //查看所有数据库3.use txt //切入到txt数据库4.drop database txt; //删除txt数据库* 常用的数据类型:            int       整数        age            int            double    小数        score          double(4,2)            char      定长字符串 gender         char(10)    "呵呵"            varchar   变长字符串 name           varchar(20) "张三"            date      日期类型  birthday date  1999-11-11            TIMESTAMP 时间戳类型 regist_time    TIMESTAMP    2016-08-29 15:05:33 * 如果给该字段赋值为null,则默认使用当前系统的时间赋值* 完整性约束:    * 主键约束:    * 主键自增长:    * 非空约束    * 唯一约束:        CREATE TABLE student(            sid INT PRIMARY KEY AUTO_INCREMENT, -- 主键约束(非空且唯一)            sname VARCHAR(20) UNIQUE,-- 唯一约束            gender CHAR(1) NOT NULL -- 非空约束        );1.创建表:  CREATE TABLE student(            字段名  数据类型            sid INT ,            sname   VARCHAR(20),            gender  CHAR(1),             score   DOUBLE(4,2),            birthday TIMESTAMP            );2.查看表:  show tables; //查看所有表  desc user; //查看user表字段、结构3.修改表    1.添加列:给stu表添加classname列:      ALTER TABLE stu ADD (classname varchar(100));    2.修改列类型:修改stu表的gender列类型为CHAR(2):       ALTER TABLE stu MODIFY gender CHAR(2);    3.修改列名:修改stu表的gender列名为sex:      ALTER TABLE stu change gender sex CHAR(2);      alter table user rename column 旧列名 TO 新列名;//改列名    4.删除列:删除stu表的classname列:      ALTER TABLE stu DROP classname;    5.修改表名称:修改stu表名称为student:      ALTER TABLE stu RENAME TO student;4.删除表:drop table user00; //删除user00表

3-对表中数据-增删改-DML

1.insert into user(name,age,content) values('ll','19','0000');2.delete from user where id=3;    //删除id=3的数据.                         id in(1,3,5);  //删除id=1、3、5的数据.                         id<=3 and id>=5; //删除id小于等于3,和大于等于5的数据.                         id between 3 and 5;  //删除id在3~5之间的数据.   清空表中所有数据:TRUNCATE TABLE tb_student; -- 先删除表,再创建表3.update user set name="baby",sex="gil" where id=3; //将id=3的name改成baby,sex改成gil.  

4-对表中数据-查询-DQL

语法:SELECT selection_list /*要查询的列名称*/      FROM table_list /*要查询的表名称*/        WHERE condition /*行条件*/          GROUP BY grouping_columns /*对结果分组*/             HAVING condition /*分组后的行条件*/               ORDER BY sorting_columns /*对结果排序*/                 LIMIT offset_start, row_count /*结果限定*/模糊查询:like    通配符:        _:代表单个任意字符        %: 代表多个任意字符排序:order by            升序:order by 字段名 [asc];        降序:order by 字段名 desc;聚合函数    聚合函数是用来做纵向运算的函数:        COUNT():统计指定列不为NULL的记录行数;        MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;        MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;        SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;        AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;        select count(*) from user;  //统计表行数                       sum(age);//求和                       avg(age);//平均数                       max(age)://最大值                       min(age)://最小值1.select * from user where id=2;  //查找id为2的所有数据2.select * from user where id between 3 and 5; //查找id在3和5之间的所有数据3.select * from user where id in(1,3,5); //查找id为1、3、5的所有数据4.select * from user where sex like "%o%";  //查询sex中包含o的数据5.select name,pass from user where id=2;//查询特定列(name,pass)id=2的数据.6.select distinct name from user;     //查询除去表中name重复值的数据7.select * from user order by name desc; asc升序 //根据name排序从大到小,即降序8.使用limit限定输出个数:(各DBMS不同)  select * from user order by age desc limit 1,3; //第二个位置取3个  select * from user order by age desc limit 5; //第一个位置取5个即0,5;

5-多表查询

一、多表查询    简言之,根据特定的连接条件从不同的表中获取所需的数据二、多表查询语法:    SELECT table1.column, table2.column    FROM table1, table2    WHERE table1.column1 = table2.column2;    但要注意where 不要省了,省略where 即为笛卡尔集,而且where 条件要有效,    两张表间有一个相同的字段,才好进行有效的多表查询    查询时列名前,加表名或表别名前辍(如果字段在两个表中是唯一的可以不加)    为了简化SQL书写,可为表名定义别名,格式:from 表名别名    如:from emp e,dept d    建议使用表的别名及表前缀,使用表别名可以简化查询,而使用表前缀则可以提高查询性能    例:查询每个员工的工号,姓名,工资,部门名和工作地点    select empno,ename,sal,dname,loc from emp,dept    where emp.deptno=dept.deptno;
原创粉丝点击