常用MySQL命令总结(数据库学习)

目录

MySQL的sql语句

数据库的curd操作

表的crud操作(表结构的操作)

表中数据的CRUD操作

多表操作


做Java的项目的时候,发现大多数的项目的数据库都是使用Mysql,就看看跟SQL server有什么区别,发现大区别没有,SQL语言类似的,并不像SQL server使用T-SQL语言

MySQL:开源免费,Oracle收购了sun公司,sun公司收购MySQL。

MySQL的sql语句

数据库的curd操作

  •     SQL:structure query language  结构化查询语言
  •     DDL:数据定义语言,定义数据库,数据表的结构(create drop alter)
  •     DML:数据操纵语言,主要是用来操作数据(insert update delete)
  •     DCL:数据控制语言,定义访问权限,取消访问权限,安全设置(grant)
  •     DQL:数据查询语言,(select  from  where)

登陆    mysql -uroot -proot
创建数据库
    create database 数据库名字
    创建数据库的时候,指定字符集
    create database 数据库名字 character set 字符集(utf8) collate 校队规则;
查看数据库
    查看所有show databases
    查看单个show create datatbase 数据库名字
    查看一下当前正在使用的数据库    select database
修改数据库
    alter database 数据库名字 character set 字符集
·删除数据库
    dorp database 数据库名字
其他数据库操作命令
    切换数据库(当前选中)    use 数据库名字
    

表的crud操作(表结构的操作)


创建表
    create table 表名(列名 列的类型(长度) 约束)
    列的类型(int、char、double、float、date、time、datetime、text、blob)
    列的约束(主键primary key、唯一unique、非空not null)
查看表
    所有的表show tables
    查看表的定义show create table student
    查看表结构desc student
修改表
    添加列alter table 表名 add 列名 列的类型 列的约束
    修改列alter table 表名 modify 列名 列的类型 列的约束
    修改列名alter table 表名 change 列名
    删除列 alter table 表名 drop 列名
    修改表名rename table 表名 to 表名2
    修改表的字符集 alter table 表名 character set 字符集
删除表
    drop table 表名

扫描二维码关注公众号,回复: 6681878 查看本文章

表中数据的CRUD操作


插入数据
    insert into 表名(列名1,列名2,列名3)values(值1,值2,值3)
    批量插入
    insert into 表名(列名1,列名2,列名3)values(值1,值2,值3),(值1,值2,值3)
    简单写法    
        insert into 表名 values(值1,值2,值3)
        insert into 表名(列名1) values(值1)
查看表中数据 
    select * from 表名
删除记录
    delete from 表名 【where 条件】 【可选】    没有筛选条件时一条一条全部删除数据DML
更新表记录
    update 表名 set 列名=列的值,列名2=列的值2【where 条件】
查询记录
    select【distinct】【*】【列名1 .列名2】from 表名 【where 条件】
        distinct    去除重复的数据
as关键字的使用
    表别名 select p.列名 from 表名 as p
    列别名 select 列名 列别名 from 表名
select运算查询 仅仅在查询结构上做 + - / *
条件查询    where
    关系运算符 >     <     >=     <=     <>
    逻辑运算符 and    or    not
    like模糊查询    where name like "%罗"
        _    :    代表一个字符
        %    :    代表多个字符
    in 在某个范围中获得值    where id in (1,5,6)
排序查询 【order by】    
    asc:升序
    desc:降序
    select * from 表名 order by 列名 【asc|desc】

聚合函数
    sum():求和    select sum(列名) from 表名
    avg():求平均值
    count():统计数量
    max():最大值
    min():最小值
分组函数 group by
     select 列名 ,count(列名) from 表名 group by 列名
    having 关键字    可以接聚合函数的 出现在分组之后
    where 关键字    不可以接聚合函数 出现在分组之前
编写顺序
    select ... from ... where ... group by ... having ... order by
执行顺序
    from ... where ... group by ... having ... select ... order by


多表操作


外键约束:foreign key
    alter table 表名 add foreign key(列名) references 表名2(列名)
建库原则
    通常情况下,一个项目|应用建一个数据库
多表之间的建表原则
    一对多:分类 和 商品
        建表原则:在多的一方添加一个外键指向(reference)一的一方。                 
    多对多:学生 和 课程
        建表原则:建立一张中间表,将多对多的关系拆分成一对多的关系,中间表至少要有两个外键,分别指向原两张表。
    一对一:公民 和 身份证
        建表原则:两张表合并,删除一张表的主键;两张表使用相同主键。

多表查询应用
    交叉连接    select * from 表名A,表名B;
    外连接    用于某元组外键不相对应,需要显示所有元组。
        左外连接,会将左表所有数据查询出来,右表用null替代
        select * from 表名A a left outer join 表名B con a.con=b.cid;
        右外连接,同上
    内链接    select * from 表名A,表名B where A中列名=B中列名;
        隐式内链接select * from 表名A as p,表名B as c where p.列名=c.列名;
        显式内链接select * from 表名A p inner join 表名B c on p.列名=c.列名;
        区别:隐式先查询,在筛选where条件
                 显式带着条件去查询结构,执行效率要高

    分页查询    百度查询分很多页        limit
        第一页3条数据    select * from 表名A limit 0,3;     offset
        
    子查询    查询的嵌套
        select * from 表名A where con=(select cid from 表名B where 列名="xxx");

视图、索引、存储过程后面接着说。

猜你喜欢

转载自blog.csdn.net/weixin_43126117/article/details/93854533
今日推荐