zoukankan      html  css  js  c++  java
  • 03.MySQL基本操作

    目录

    1.1 MySQL 三种数据类型(数值,字符串,日期)
    1.2 MySQL常用增删改查命令
    1.3 删除,添加或修改表字段
    1.4 MySQL外键关联(一对多)
    1.5 MySQL连接查询:两个表之间外键关联
    1.5 MySQL连接查询:两个表之间外键关联
    1.6 mysql导入导出

    1.1 MySQL 三种数据类型(数值,字符串,日期)

    • 1、数值格式有哪些
    数值型分为两种 整形常用有5类 浮点型有3类
    1. 整形 非常小的整形 == 1字节:-128127;0255 == Tinyint Float(H,D) == 4字节
    2. 浮点型 较小的整形 == 2字节:-32768~32767 == Smallint Double(H,D) == 8字节
    中等大小整形 == 3字节:0~224 == Mediumint Decinal(H,D)定点数 == H+2字节
    标准整形 == 4字节:0~232 == int
    大整形 == 8字节:0~264 == Bigint
    • ** 2、字符串格式有哪些*
    char(n) 255(固定长度) 常用于长度不变的(如:性名列)索引快,但浪费空间
    varchar 255(可变长度) 节省空间但索引慢
    text 216-1 文本数据(文章)
    blog 二进制数据(相片)
    • 3、日期型
    Date(日期) YYYY-MM-DD
    TIME(时间) hh:mm:ss
    DATETIME(日期和时间) YYYY-MM-DD hh:mm:ss
    TIMESTAMP(时间戳) YYYYMMDDhhmmss
    YEAR(年) YYYY

    1.2 MySQL常用增删改查命令

    1、创建数据库和表

        1. 创建数据库
    

            mysql> show databases;
            mysql> create database tomdb charset utf8; #创建数据库tomdb,使用utf-8做字符编码
            mysql> use tomdb #选择使用tomdb数据库
            mysql> drop database tomdb;
            mysql> show create database tomdb; # 查看创建数据库的语法

        2.创建表结构
    

            mysql> show tables
            mysql> desc student;
            mysql> drop table student;

    • 创建表结构:例1
    create table student(
    id int auto_increment,
    name char(32) not null,
    age int not null,
    register_data date not null,
    primary key (id));
    
    mysql> create table student(               #在tomdb数据库中创建表:student
        -> id int auto_increment,              #在表中创建第一个字段:“id”
        -> name char(32) not null,             #在表中创建第二个字段:“name”
        -> age int not null,                   #在表中创建第三个字段:“age”
        -> register_data date not null,        #在表中创建第四个字段:日期
        -> primary key (id));                  #将表的主键设置为字段:“id
    Query OK, 0 rows affected (0.10 sec)       #这里是创建成功的提示
    
    • 创建表结构:例2
    create table MyClass(
    id int(4) not null primary key auto_increment,
    name char(20) not null,
    sex int(4) not null default '0',
    degree double(16,2));
    

    插入数据

            mysql> desc student;                                                         # 查看student表所有字段
            mysql> insert into student(name,age,register_data) values("zhangsan",100,"2016-06-20");
            mysql> select * from student;    
    

    3、常用查询语句

        1. 最基本查询语句

            mysql> select * from student limit 2; #仅查看student表中前两行数据
            mysql> select * from student limit 5 offset 3; #从第三行开始查询,并且只显示5行数据

        2. where; like; order by;使用

            mysql> select * from student where id >3 and age >103;
            mysql> select * from student where register_data like "2016-06%"; #查询所有在2016-06这一条新建的条目
            mysql> select * from student order by id desc; #按主键降续
            mysql> select * from student order by id asc; #按主键升续排序(默认升续)
            mysql> select * from student where name like binary "%si" order by id desc; #查找名字以“si”结尾的所有条目,并且按照id降续排列

        3. GROUP BY 语句:指定以什么分组(比如可以统计出有多少同名数据)

            mysql> select name,count(*) from student group by name;

            mysql> select coalesce(name,"Total age"),sum(age) from student group by name with rollup;

    4、修改(update)

          mysql> update student set name="lisi",age=22 where id=1; #将表中id=1的条目改成name=lisi,age=22
          mysql> update student set name="lisi",age=22 where id>4; #上面仅仅修改一条,这里修改id>4的所有

    5、删除(delete)

          mysql> delete from student where name="zhangsan"; #删除student表中所有name=“zhangsan”

    1.3 删除,添加或修改表字段

    1、添加一个字段(add)

          mysql> alter table student add sex enum("M","F"); #添加一个字段sex,只能用M,或者F
          mysql> insert into student(name,age,register_data,sex) values("zhangsan",100,"2016-06-20","M");

          mysql> ALTER TABLE user MODIFY COLUMN NAME VARCHAR(50) default null; # 修改字段属性
          mysql> ALTER TABLE user CHANGE name new_name char(32); # 修改字段名称

    2、删除一个字段(drop)

          mysql> alter table student drop age; #删除student表的age字段

    3、仅能修改一个字段的属性(modify)

          mysql> alter table student modify sex enum("F","M") not null; #修改刚创建的student表属性不能为空

    4、把字段的名字也能改掉(change)

          mysql> alter table student change sex gender char(32) not null default "x"; #将sex字段名由sex改成gender,设置不能为空,默认值为“x”

    5、修改表名

          mysql> alter table student rename to student_table; #将表名从student修改成student_table

    6、删除有依赖关系的表

          导入sql文件前,取消外键检查:set foreign_key_checks=0;
          导入sql文件后,加入外键检查:set foreign_key_checks=1;

    7、django中,在已有表添加新字段和新外键关系手动解决migrate失败问题

        1. 添加普通字段

            #1、将notify_notifybytagrelation表添加一个新字段max_times,为int类型,不为空,默认值为0
            alter table notify_notifybytagrelation add column max_times int not null default 0;

        2. 创建外键关联的表

    create table notify_tagnotifygroup(
    id int auto_increment,
    name char(255) not null,
    notify_interval int not null default 0,
    max_times int not null default 0,
    primary key (id));
    
  • 相关阅读:
    linux 安全组
    php 类
    linux安装phpmyadmin
    mysql设置对外访问
    linux 防火墙
    微信小程序之swiper组件高度自适应
    Thinkphp5 关联模型
    README.md文件编辑
    linux安装mysql
    小程序返回顶部top滚动
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12168634.html
Copyright © 2011-2022 走看看