zoukankan      html  css  js  c++  java
  • 8.mysql-基础.md


    目录

    数据库管理

    查看当前软件中的数据库

    show databases;
    

    出现结果:

    +--------------------+
    | Database |
    +--------------------+
    | information_schema | --这个是mysql的元数据
    | mysql | --这个是mysql的配置数据库,包含用户信息,权限等
    | performance_schema | --这个是mysql的运行数据,日志
    | test | --这个是mysql的测试数据库,初始是空的
    +--------------------+

    工具

    SQLyog_Enterprise.rar

    创建数据库

    直接创建

    create database hi;
    ``
    创建并设置字符集:注意数据库中的utf-8不带有横杠,写为utf8
    ```mysql
    create database ss
    default character set utf8;
    

    删除数据

    drop database hi;
    

    查看字符集

    show careate database ss;
    

    修改数据库

    alter database ss default character set gbk;
    
    

    表管理

    进入数据库

    use hi;
    

    查看表

    show tables;
    

    创建表

    create table person(
    id int,
    name varchar(20),
    age int
    );
    

    查看表结构

    
    desc person;
    

    出现:

    mysql> desc person;
    +-------+-------------+------
    | Field | Type | Null
    +-------+-------------+------
    | id | int(11) | YES
    | name | varchar(20) | YES
    | age | int(11) | YES
    +-------+-------------+------
    3 rows in set (0.03 sec)

    删除表

    drop table person;
    

    修改表

    添加字段

    alter table person add column hight int;
    
    

    删除字段

    alter table person drop column hight;
    
    

    修改字段名称

    
    
    

    修改字段类型

    alter table person modify column hight varchar(8);
    
    

    修改表名称

    alter table person change column hight int;
    
    

    插入数据

    插入所有字段数据

    USE hi;
    -- 1.增加数据
    INSERT INTO person VALUES(1, '张三', 25, '什么');
    
    
    -- 2.查询数据
    SELECT * FROM person;
    

    插入指定字段

    -- 3.插入指定字段
    INSERT INTO person(id) VALUES(2);
    

    修改

    
    
    

    删除

    
    
    

    查询优化

    空比较

    -- 和空字符串比较
    SELECT * FROM person AS p WHERE p.name <> ''
    -- 和NULL比较
    SELECT * FROM person AS p WHERE p.name IS NOT NULL
    

    模糊查询

    -- %表示任意个字符比配
    SELECT * FROM person AS p WHERE p.name LIKE '%三'
    -- _表示单个个字符比配
    SELECT * FROM person AS p WHERE p.name LIKE '_三'
    

    分页查询

    -- limit分页(起始行,查几行)
    SELECT * FROM person LIMIT 0,1;
    -- 分页:当前页 每一页显示数据量
    -- 分页查询:LIMIT (当前页-1)*每页显示条数, 每页显示条数
    
    
    

    数据约束

    默认值和非空

    -- 默认值
    CREATE TABLE default_test(
    id INT,
    NAME VARCHAR(8) DEFAULT 'a'
    );
    
    
    INSERT INTO default_test(id) VALUES(1);
    
    
    -- 非空
    not null
    
    
    -- 唯一
    CREATE TABLE student(
             id INT UNIQUE, -- 唯一
             NAME VARCHAR(20)
    )  
    
    

    主键和自增长

    • 通常情况下,每张表都会设置一个主键字段。用于标记表中的每条记录的唯一性。
    • 不要选择表的包含业务含义的字段作为主键,建议给每张表独立设计一个非业务含义的 id字段。
    CREATE TABLE student(
             id INT(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT, -- 自增长,从0开始  ZEROFILL 零填充。也就是原来的自增长是0,1....而现在int是4位的,变为:0001,0002....
    
             NAME VARCHAR(20)
    )
    
    
    
    

    这里要注意,如果删除数据时候,自增长的删除与否是可设置的

    -- 不能影响自增长约束
    DELETE FROM student;
    -- 可以影响自增长约束
    TRUNCATE TABLE student;    
    
    

    外键

    -- 部门表(主表)
    CREATE TABLE dept(
             id INT PRIMARY KEY,
             deptName VARCHAR(20)
    )
     
    -- 修改员工表(副表/从表)
    CREATE TABLE employee(
             id INT PRIMARY KEY,
             empName VARCHAR(20),
             deptId INT,-- 把部门名称改为部门ID
             -- 声明一个外键约束
             CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)
             --           外键名称                  外键               参考表(参考字段)
    )    
    
    

    注意:

    • 被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!
    • 主表的参考字段通用为主键!
    • 添加数据: 先添加主表,再添加副表
    • 修改数据: 先修改副表,再修改主表
    • 删除数据: 先删除副表,再删除主表

    级联操作

    • 级联修改: ON UPDATE CASCADE
    • 级联删除: ON DELETE CASCADE
    
    CREATE TABLE employee(
             id INT PRIMARY KEY,
             empName VARCHAR(20),
             deptId INT,-- 把部门名称改为部门ID
             -- 声明一个外键约束
             CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE-- ON CASCADE UPDATE :级联修改
             --           外键名称                  外键               参考表(参考字段)
    )
    -- 注意: 级联操作必须在外键基础上使用    
    
    
    
  • 相关阅读:
    HANDLE CreateThread()
    偷懒的一天-jQuery之事件与应用
    web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记
    无聊的周五晚上
    闲里偷闲
    被蚊子和自己搞毁的一天
    数据库有点意思
    周一周一周。。一
    无聊到周六的教研室
    1.Nginx相关概念
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512661.html
Copyright © 2011-2022 走看看