MySQL基础(ddl,dml,dql的基础学习)

  • 画图 分类
  • ddl 数据定义语言:操作数据库和表结构 data define language
  • dml 数据操作语言:操作数据记录–增删改
  • dql 数据查询语言:查询数据记录
  • dcl 数据控制语言:用户权限的控制–授权和撤销权限

ddl学习:

一.操作数据库

1.C(create):创建

    1.1创建数据库
         create database 数据库名;
    1.2创建数据库前先判断是否存在
         create database if not exists 数据库名;
   1.3创建数据库db1 ,判断是否存在,并指定字符集为utf8
         create database if not exists 数据库名 character set utf8;

2.R (Retrieve):查询

     2.1查询所有数据库名
         show databases;
     2.2查询某个数据库的字符集--其实是查询数据库的创建sql语句
         show create database数据库名;

3. U(Update):修改

     3.1修改数据库的字符集         
         alter database 数据库名 character set 字符集; 

4. D(delete):删除

     4.1删除数据库
         drop database 数据库名;
     4.2删除数据库前先判断是否存在
         drop database if exists 数据库名;

5.使用数据库

    5.1查询当前正在使用的数据库名称
        select database();
    注意  和 show databases;的细微区别
        -- 语义不同,分别是:查看所有数据库名称,查看当前正在使
        用的数据库名称
        --  写法不同,database() 和 databases 
    5.2使用数据库
        use db1(数据库名);   

二. ddl操作表

1.查询

    1.1查询某个数据库中所有的表名称
        show tables;
    1.2查询表结构
        desc 表名;
    1.3查询表的创建语句
        show create table 表名;       

2. 创建

创建表
    create table 表名(
    列名1  数据类型1,
    列名2  数据类型2,
    ......
    列名n 数据类型n
);

注意:最后一列,不需要加逗号

数据类型
1. int 整数类型
age int
2. double 小数类型
score double(5,2) 总长度5,小数点后的位数2,最大值999.99
3. date 日期,只包含年月日,yyyy-MM-dd
4. datetime 日期,包含年月日和时分秒 yyyy-MM-dd HH:mm:ss
5. timestamp 时间戳,包含年月日和时分秒 yyyy-MM-dd HH:mm:ss
如果该类型字段没有赋值,或赋值为null,则默认使用当前系统时间填充
6. varchar 字符串(长度可变)
7. char字符串(长度固定)
name varchar(20) 表示姓名最长20个字符的限制

注意:
-- 字符串varchar和小数double都要指定长度
-- varchar和日期类型的数据要加上引号(推荐使用单引号)

复制表
create table 表名 like 被复制的表名;

3.删除表

1. drop table 表名
2. drop table if exists 表名

4. 修改

4.1修改表
修改表名
alter table 表名 rename to 新表名
修改表的字符集
– 查看表的字符集,其实是查看表的创建语句
show create table 表名;
– 修改表的字符集
alter table 表名 character set 字符集;
4.2修改列
添加一列
alter table 表名 add 列名 数据类型;
修改列类型
alter table 表名 modify 列名 数据类型;
修改列类型
alter table 表名 change 旧列名 新列名 数据类型;
删除列
alter table 表名 drop 列名;

二、dml学习

1.添加字段

   1.1添加全部字段
        insert into 表名 (列名1,列名2,...列名n) values (值1,值2,...值n);
    1.2添加部分字段
        insert into 表名 (列名1,列名2,列名3,...) values (值1,值2,值3,...);
    1.3批量添加数据         
         随堂测试:
         1.向员工表中新增3名员工信息:
         2.张三  25岁,男
         3.李四  26岁,男
         4.王五  27岁,女
         -- 分析:属于添加部分字段 
         insert into emp (id,name,age,sex) values
         (2,'张三',3,'男'),(3,'李四',26,'男'),(4,'王五',27,'女')
         -- 批量新增语法
         insert into 表名 (字段1,字段2,...) values (值1,值2,...),(值1,值2,...),
         (值1,值2,...);
         注意:
         添加数据值时,除了数字类型, 其它类型需要使用引号
         (单双引号都可以),建议使用单引号。

2.删除数据

     2.1删除满足条件的数据
         delete from 表名 [where 条件];
         注意:
        如果不加条件,则删除表中所有的数据
         eg:
        delete from emp1;
        delete from emp1 where true; 
        delete from emp1 where 1=1;
    2.2删除表中的所有数据
        truncate table 表名;
        两种删除所有数据的方法:
         1.truncate方式,先删除整个表,再创建一张同样结构的表,
         执行效率高,推荐使用。
         2.delete from 表名 ,不带条件,有多少条记录就会执行多少
         次删除操作,效率不高,不推荐。

3.修改数据

        update 表名 set 列名1=值1, 列名2=值2, ... [where 条件];
        注意:
        如果不带条件,则会修改所有的数据

三、dql学习

    完整的查询语法    
        select
             字段列表
        from
             表名列表
        where
              条件列表
        group by
              分组字段
        having
              分组之后的条件
        order by
              排序
       limit
              分页限定

1. 基础查询

   1.1多个字段查询
        select 字段名1,字段名2... from 表名;
        注意: 如果查询所有字段,则可以使用*来替代字段列表。
   1.2去除重复
        关键字 distinct直接放在select后面
    1.3四则运算
        一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
        ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
       表达式1:哪个字段需要判断是否为null
       如果该字段为null后的替换值。
       案例:计算学员英语和数学成绩和:(假如他们之中没人考试,
       成绩为null)
       select math,english,ifnull(math,0)+ifnull(english,0) from stu;
   1.4起别名
       字段名 后写关键字 as  或省略as 直接用空格

2. 条件查询

   2.1where和 运算符 构成查询条件
       > 、< 、<= 、>= 、= 、<>
       BETWEEN...AND
       IN( 集合)
       LIKE:模糊查询
       占位符:
            _:单个任意字符
            %:多个任意字符
       IS NULL  
       and  或 &&
       or  或 || 
       not  或 !

3. 模糊查询

    3.1使用关键字 like
        通配符:
        _ 匹配一个字符
        % 匹配0-n个字符
    案例:
        -- 查询姓马的有哪些? like
        SELECT * FROM student WHERE NAME LIKE '马%';
       -- 查询姓名第二个字是化的人
       SELECT * FROM student WHERE NAME LIKE "_化%";		
       -- 查询姓名是3个字的人
       SELECT * FROM student WHERE NAME LIKE '___';
      -- 查询姓名中包含德的人
      SELECT * FROM student WHERE NAME LIKE '%德%';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值