SQL基础

SQL(Structure Query Language)使用关系模型的数据库应用语言,开发时间:20世纪70年代。 

SQL语言分类: DDL(Data Definition language):数据定义语言   DML(Data Manipulation Language): 数据操作语句   DCL (Data Control Language)  数据控制语句

    DDL语句:

简单来说:就是对数据库内部对象进行创建,删除,修改等操作。与DML最大的区别在于DML:只是对表内部数据操作,不涉及表的定义,结构的修改,更不会涉及其他对象。(更多用于DBA使用),开发人员很少使用

     常用DDL语句介绍:

1.创建数据库: CREATE DATABASE dbname;  查看数据库  show databases;     使用数据库   use dbname;  删除数据库 drop database dbname;  

      2.创建表: CREATE TABLE tablename(column_name_1 colunmn_type_1  constraints , column_name_2 colunmn_type_2  constraints  ...   column_name_n colunmn_type_n constraints )

                  查看表结构:DESC tablename     如果想得到更加全面的表定义信息,查看创建表的SQL语句 :  show create table tablename \G;    删除表: DROP TABLE tablename 

 3.修改表:

修改表类型: ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST| AFTER col_name]  

增加表字段 :ALTER TABLE tablename ADD  [COLUMN]     column_definition [FIRST| AFTER col_name]

删除表字段 :ALTER TABLE tablename DROP    [COLUMN]     col_name

字段改名: ALTER TABLE tablename CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST| AFTER col_name]

{change和modify都可以修改表的定义,不同点:change后面需要写两次列名,不方便,但是change的优点在于可以修改列名称,但是modify 不可以}

        修改字段排列顺序:前面介绍的字段增加和修改语法中,都有一个可选项first|aftyer column_name  这个选项用于修改字段在表中的位置

           更改表名字: ALTER TABLE tablename RENAME [TO] new_tablename

     DML语句:

   主要用于对数据库中表纪律的操作,主要包括表记录的插入(insert), 更新(update), 删除(delete)和查询(select) 是开发人员日常使用最频繁的操作  

  常用DM语句介:

1. 插入记录:  INSERT INTO tablename(filed1,field2,field3,field4,....,fieldn) VALUES(value1,value2,value3,value4,....,valuen);

{也可以不指定字段名字,但是values后面的顺序应该和字段的排列顺序一致  含有可空字段,非空字段但是含有默认值得字段,自增字段,可以不用在insert表里面出现,values后面致谢对应字段名称的value

批量进行插入:   INSERT INTO tablename(field1,field2,field3,..,fieldn) values   (record1_values,record1_values2,record_values3,...,record1_valuesn), (record2_values,record2_values2,record2_values3,...,record2_valuesn),    ..... (recordn_values,record1n_values2,recordn_values3,...,recordn_valuesn);

2.更新记录:UPDATE  tablename SET field1=value1,field2=value2,...,fieldn=valuen[WHERE CONDITION]

         可以更新多个表中的数据:UPDATE t1,t2,..,tn set t1.field1=expr1,tn.fieldn=exprn [WHERE CONDITION]例如L update emp a , dept b set a,sal=a.sal*b.deptno,b,deptname=a,ename  where a.deptno=b.deptno;

3.删除记录:DELETE FROM tablename[WHERE CONDITON]   

      可以删除多个表中的数据:DELETE t1,t2,...,tn FROM t1,t2,..,tn [WHERE  CONDITON]

4.查询记录:SELECT *FROM tablename[WHERE CONDITION]   {数据库中可以通过各种各样的查询,是的输出的结果符合用户的要求0}

常用查询要求:

a.查询不重复的记录 {有时需要剔除表中的重复后显示出来}   关键字: distinct         语法:select   select distinct  column_name from table_name;

b.条件查询 {根据实际情况,仅仅符合限定条件的那部分数据} 关键字:where   语法:select   *  from table_name where condition {比较符(= < > >= <= != ) ,多条件联合查询(or and)}

c.排序与限定 {取出按照某个字段进行排序后的记录结果集} 关键字:order by  语法:select * from table_name [WHERE CONDITION]   [ORDER BY field1 [DESC/ASC], field2 [DESC/ASC],....,fieldn [DESC/ASC]] {DESC 降序 ASC升序}

关键字:limit 语法:select ....[LIMIT offset_start,row_count] {offset_start 记录的起始偏移量  row_count 显示的行数,默认情况下,其实偏移量默认为0,写记录行数即可}

d.聚合  {根据实际情况,需要一些数据汇总操作}  语法: select [field1,field2,  ... ,fieldn ] fun_name from tablename [where where_condition] [group by field1,field2,...,fieldn [with rollup]] [having where_condition] 

          {参数说明:fun_name(聚合函数 常用的有sum,count,max,min) group by(表示要进行分类聚合的字段) with rollup(可选,表明对分类聚合的结果在进行汇总) having(对分类后的结果再进行条件的过滤) }

e.表连接 {需要同时显示多个表中的字段时}

外联接:选出其他不匹配的数据记录

左连接: 包含所有的左边表中的记录甚至是右边表中没有和他匹配的记录 selec column_nam1,column_name2 from table_name1 left join table_name2 on  condition;  

右连接:包含所有的右边表中的记录甚至是左边表中没有和他匹配的记录

内连接:选出两张表中互相匹配的记录 最常用 select column_name1 , column_name2 from table_name1 , table_name2 where condition;

  f.子查询 当进行查询的时候,需要的条件是另外一个select语句的结果   关键字:in not in  = != exists not exists 等 

g.联合记录 将两张表中的数据按照一定的查询条件查出后,将 结果合在一起显示   关键字:union      union all  语法: select * from t1 union\union all select *from t2 .... union\union all select * from tn;

DCL语句:

DBA用来管理系统中的对象权限时使用  

常用DCL语言介绍:

1 授予   关键字:grant grant [ priviliges ]     on dbname.* ro username@[ip \    localhost]   identified by 'passwd';

2.解除  关键字:revoke rovoke [ priviliges ]     on dbname.* ro username@[ip \    localhost]


查询元数据

在MySQL5.0以后提供了一个新的数据库 information_schema 用来记录MySQL中的元数据信息  

  元数据   {表名,列明,列类型,索引名等表的各种属性名称 }


帮助的使用:

按照层次看帮助:   通过关键字“? content” 命令来显示所有可供查询的分类 “?类型名称”的方式 可以一层层地往下查找用户所关心的主题内容

  快速查阅帮组 : "? 需要语句"


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值