初识MySQL数据库

一、SQL介绍

SQL是Structured Query Language(结构化查询语言)SQL是数据库语言,通过SQL可以实现与MySql服务器的通信。表是主要的数据库对象,用于存储数据。

  1. 常用sql命令
    查看所有的数据库
    show databases;

    创建/删除数据库
    create database 库名;
    drop database 库名;

    使用数据库
    use 库名;

    查看本数据库下有多少表
    show tables;

    查看数据库,表的创建过程
    show create database 库名;
    show create table 表名;

  2. SQL支持下列类别的命令
    数据定义语言(DDL)
    CREATE ALTER DROP

    创建表
    create table 表名(字段名 类型);
    eg:
    create table stu(id int, name varchar(20), age int(3));

    删除表
    drop table 表名

    修改表
    添加列 alter table stu add(stuAddress varchar(20));
    修改列 alter table stu modify name char(30);
    删除列 alter table stu drop (name ,stuAddress);

    DDL主要是用在定义或改变TABLE的结构,一张表对应一个实体(类)

    数据操纵语言(DML)
    INSERT SELECT DELETE UPDATE

    插入指定字段数据
    insert into stu(name,age) values(‘dd’,‘23’);
    插入所有字段数据
    insert into stu values(xxx,xxx,xxx,xxx)

    update单列
    update stu set age=26 where name=‘dd’;
    update多列
    update stu set age=26,name=gg where id=‘1’;

    删除id为1的学生记录
    delete from stu where id=‘1’;

    查询所有记录
    select * from stu;
    查询指定位置
    select * from stu where id=‘1’;
    select name,age from stu;
    去重查询
    select distinct * from stu;

    事务控制语言(TCL)
    COMMIT SAVEPOINT ROLLBACK

    数据控制语言(DCL)
    GRANT REVOKE

    用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

二、常见数据类型

  1. 整数
    tinyint smallint mediumint int integer bigint
    各占字节数是1、2、3、4、8
    最常用的是int

  2. 浮点数、定点数、位类型
    float:4
    double:8
    decimal或dec:更精准
    bit

  3. 字符串类型
    char 0-255
    varchat 0-65535:长度可变

  4. 日期和时间类型
    data
    time
    datatime
    timestamp

  5. text系列字符串:文章内容的纯文本
    tinytext
    text
    mediumtext
    longtext

三、MySQL函数和查询

  1. 数学函数
    ABS(X) 返回x的绝对值
    #SELECT ABS(-1)
    SIN(X) 求正弦值(x为弧度)
    #SELECT SIN(RADIANS(30))
    PI() 返回圆周率
    #SELECT PI()

  2. 日期时间函数
    CURDATE(),CURRENT_DATE()
    #返回当前日期
    CURTIME(),CURRENT_TIME()
    #返回当前时间
    NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP()
    #返回当前日期和时间
    eg:
    select now();

  3. 分组 group by
    分组前限定用where,分组后限定用having
    对查询结果排序 order by
    与或非 and or not

  4. 内链接
    select * from 表1 inner join 表2 on 表1.id=表2.id;
    外链接
    左外链接
    select * from 表1 left join 表2 on 表1.id=表2.id;
    右外链接
    select * from 表1 right join 表2 on 表1.id=表2.id;

  5. 分页查询
    #只看前5行数据
    select * from 表名 limit 5;
    #看6-8行(第五行开始)
    select * from 表名 limit 5,3;

  6. 模糊查询
    #查询名字中带a的人
    select * from 表名 where name like ‘%a%’;
    #查询名字中以a开头的人
    select * from 表名 where name like ‘a%’;
    #查询名字长度为2而且以a结尾的人
    select * from 表名 where name like binary ‘_a’;

四、MySQL索引和事物

  1. 索引分类
    非空约束:字段不能为空
    主键索引:唯一,一般为自增
    唯一索引:字段数据是唯一的
    组合索引

    建表时添加索引
    非空约束:create table pers(name varchar(20) not null,age int(5));
    主键约束:create table pers(name varchar(20) primary key,age int(5));
    主键自增约束:create table pers(id int(5) primary key auto_increment,name varchar(20));

    建表后添加索引
    非空约束:alter table pers modify name varchar(20) not null;
    主键约束:alter table pers add constraint primary key(name);
    唯一约束:alter table pers add constraint unique(name);
    主键自增:alter table pers modify id int(5) auto_increment

    查看索引
    show index from 表名

    删除索引
    alter table 表名 drop index index_name

  2. 事物
    就是业务上的一个逻辑单元(例如转账业务),他能保证其中对数据所有的操作要么全部成功,要么全部失败。

    事务特性
    原子性:整体性,不能分开
    一致性:状态一致
    隔离性:同时存在很多事物,互不影响
    持久性:事务提交,数据修改永久生效;如果回滚,相当于没有发生这件事

    SQL操作
    savepoint a; 设置回滚点a
    rollback to savepoint a; 回滚到回滚点
    rollback; 回滚到初始点
    submit; 提交事物

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值