mysql基础知识

数据库操作:

  1. 查看所有的数据库
    show databases
  2. 创建数据库
    create database <数据库名称>  例如:create database test
  3. 创建数据库,判断是否存在,不存在再创建:
    create database if not exists <数据库名称>
  4. 创建数据库,并指定字符集:
    create database if not exists <数据库名称>  character set gbk
  5. 删除数据库
    drop database  <数据库名称>
  6. 判断存在再删除:
    drop database if exists <数据库名称>
  7. 修改数据库名称及字符集
    alter database <数据库名称> character set gbk
  8. 使用数据库
    use <数据库名称>
  9. 查询正在使用的数据库:
    select database()
  10. 清屏
    system clear

   

数据表操作:

   基本语法:

       create table 表名(

列名1 数据类型1,

列名2 数据类型2,

……

列名n 数据类型n

)

注意点:最后一个不需要英文逗号

数据类型有:

           Int :整数型 例子: age int(3)

           Double: 双精度小数 例如:score double(5,2)

           Float: 浮点小数

           Data: 只包含年月日,yyyy-MM-dd

           Datatime:包含年月日时分秒 ,yyyy-MM-dd HH:mm:ss

           Timestamp: 包含年月日时分秒 ,yyyy-MM-dd HH:mm:ss 不赋值或赋值为空将自动用系统当前时间赋值

           Varchar:字符类型 例如:name varchar(45)
   

  1. 创建表:
    create table test(

id int,

name varchar(45),

score double(5,2)
)

  1. 创建表并设置主键:

    方法一:
    create table test(

id int primary key,

name varchar(45),

score double(5,2)
)
方法二:
create table test(

id int,

name varchar(45),

score double(5,2),

primary key(id)
)

 

多字段联合主键
create table test(

id int,

name varchar(45),

score double(5,2),

primary key(id,name)
)

外键约束:
语法:
constraint <外键名> foreign key (<字段名1>,<字段名2…>) references <表名>(主键1,主键2…)

(1)先创建一个带有主键的表test:
create table test(

id int,

name varchar(45),

score double(5,2),
primary key(id)

(2)创建表test2并把它的deptId作为外键关键到t表test的主键上:
create table test2(
id int primary key,
deptId int(11),
name varchar(45),
score double(5,2),
constraint fk_test2_test1 foreign key(deptId) references test1(id)
)
设置属性:
               not null—非空
               unique---唯一性,不能重复
               default <默认值>----默认值
               auto_increment---属性自动增加

  1. 复制表
    create table <表名> like <被复制的表名>
  2. 查看表
    查看全部表名称:show tables
    查看表的结构:desc<表名>、describle<表名>
  3. 修改表名:
    基本语法:alter table<旧表名> rename <新表名>
    例如:alter table test rename test2
     
  4. 修改表的字段类型
    基本语法:alter table<表名> modify <字段名><数据类型>
    拓张语法:
    将字段修改为第一个字段:alter table <表名> modify <新字段名> <数据类型> first
    将字段修改到某字段后面:alter table <表名> modify <新字段名> <数据类型> after <某字段名>
     
  5. 修改字段名称和类型
    基本语法:alert table<表名> change <旧字段名> <新字段名> <数据类型>
  6. 添加字段
    基本语法:alter table <表名> add <新字段名> <数据类型>
    拓张语法:

将新字段添加到第一个字段:alter table <表名> add <新字段名> <数据类型> first
将新字段添加到某个字段后面:alter table <表名> add <新字段名> <数据类型> after<某字段名>

  1. 删除字段
    基本语法:alter table<表名> drop <字段名>
  2. 删除表的外键:
    基本语法:alter table<表名> drop foreign key <外键名>

增删改表中的数据:

  1. 增加
    基本语法:insert into <表名>(列名1,,列名2…列名n) values(值1,值2…值n)
    注意:
    1. .列名和值要一一对应
    2. 如果表名后不定义列名,则默认给所有的列添加值
      insert into <表名> values(值1,值2…值n)
    3. 除了数字类型,其他类型都需要用引号(单双都可以)
  2. 删除
    基本语法:delete from<表名> where<条件>
    注意:
    1. 不加条件,则删除表中所有数据
    2. 如果要删除所有记录
      1. Delete from表名    ---不推荐使用
      2. Truncate table <表名>  ---推按使用
  3. 修改
    基本语法:update <表名> set 列名1=值1,列名2=值2…   where 条件
    注意:
    1. 如果不加条件,则表中所有记录都会表修改

查询记录:

    基本语法:

       Select

           字段列表

       From

           表名列表

       Where

           条件列表

       Group by

           分组字段 (desc[高到底]、asc[低到高])

       Having

           分组之后的条件

       Order by

           排序

       Limit

           分页限定

  1. 基础查询
    1. 多字段查询
      select 字段1,字段2… from 表名
      注意:*查询所有字段
    2. 去重
      distinct
    3. 起别名
      as  也可以省略
    4. 一帮可以使用四则运算计算一些值
      if null(表达式1,表达式2)
  2. 条件查询
    1. Where 后跟条件
      1. 运算符
        >     <   >=       <=  = <>
        between …end…
        in(集合)
        like:模糊查询
              占位符:
                     _:单个任意字符
                     %:多个任意字符
        is null 、is not null
        max()、min()、count(*)、sum() 、avg() 、regexp ‘ 正则表达式’

        and 或 &&
        or 或||
        not 或 !

         
  3. 连接查询
    1. 内连接
      基本语法:select * from 表名1  inner join 表名2 on 表名.1字段=表名2.字段 (显式)
                     select * from 表名1  表名2 where 表名.1字段=表名2.字段(隐式)
      注意:
      1. 表名太长可用别名: select * from 表名1 as a  inner join 表名2 as b on a.1字段=b.字段
      2. 内连接可以用where 代替on ,但是没有on的效率高
    2. 外连接
      1. 左外连接:
        基本语法:select * from 表名1  left join 表名2 on 表名.1字段=表名2.字段
      2. 右外连接
        基本语法:select * from 表名1  right  join 表名2 on 表名.1字段=表名2.字段

注意:左连接以左表为主,右连接以右表连接

    1. 子查询:将第一次查询的结果作为第二次查询的结果范围
      概念:查询中嵌套的查询为子查询
            查询最高工作的员工信息
            1.查询最高工资是多少 9000
                   select Max(salary) from emp;
            2.查询工资等于9000的员工信息
                   select * from emp where salary=9000
            子查询
                   select * from emp where salary=( select Max(salary) from emp)

数据类型:

  1. 整数型:tinyint(0-255[无符号]、-128-127[有符号])、smallint、mediumint、int、bigint
  2. 浮点小数和定点小数
    单精度浮点小数:float
    双精度浮点小数:double
    定点小数:decimal
    注意:都可以用(M,N)来表示,M为精度,表示总位数,N为标度,表示小数位数
  3. 日期类型
    主要类型有:datetime、date、timestamp、time、year
           数据:current_date() 、now()
     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十三之歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值