zoukankan      html  css  js  c++  java
  • 库操作&表操作

    系统数据库

    ps:系统数据库:
      mysql 授权库,主要存储系统用户的 权限信息
      test MySQL数据库系统自动创建的 测试数据库
      ination_schema
      虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等.

    说得简单点,ination_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在ination_schema表里面。

    命令行提示符:

    help--帮助语法

    如果忘记某个SQL语法,可以通过help查询,当然不只是SQL语句的语法

    例如:help create database;

    数据库操作

    1、查看数据库

    show databases; -----------查看所有的数据库
    
    show create database db_name; ------查看库的 创建属性
    
    select database();  --------显示当前在哪个数据库下

    2、创建数据库

    create database db_name;     ---------------------------创建数据库(默认utf8)
    create database db_name character set=utf8;    ------创建数据库(指定编码集)
    create database db_name default character set=utf8
    create database 数据库名 charset utf8;

    数据库命名规则:

    1. 可以由字母、数字、下划线、@、#、$
    2. 区分大小写
    3. 唯一性
    4. 不能使用关键字如 create select
    5. 不能单独使用数字
    6. 最长128位

    3、进入(使用)数据库

    use db_name; -------------------进入db_name数据库

    4、修改数据库

    alter database db_name charset utf8;

    5、删除数据库

    drop database db_name; -------------------------删除数据库

    (注意:后面的(;)号)

    表操作

    表:表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

    s_id, s_name, s_age, s_sex, 称为字段, 一行内容称为一条记录

    1、创建表

    语法:

    create table 表名(
    字段名1 类型[(宽度) 约束条件],
    字段名2 类型[(宽度) 约束条件],
    字段名3 类型[(宽度) 约束条件]
    );

    注意:
      1. 在同一张表中,字段名是不能相同
      2. 宽度和约束条件可选
      3. 字段名和类型是必须的

    创建表格:

    create table tb_name(
        id int auto_increment primary key #列名,整型,不能为空,自动递增,唯一性,主键   (主键:不能为空,不能重复,语法上不能修改)
        name varchar(10) not null comment '用户名'      #列名,字符串(最大长度),不能为空  comment ‘str’ 添加字段注释
        age int not null default 0          #default 0 设置列的默认值
        sex enum('male','female'),         #枚举,只能从后面的值中选择
        )engine=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索
         default charset=utf8;  //设置默认的编码,防止数据库中文乱码
         如果是有条件的创建数据表还可以使用   CREATE TABLE IF NOT EXISTS tb_name(........ #如果表tb_name不存在,就创建

    2、查看表

    查看所有表格:

    show tables; ----------------查看db_name数据库中所有的表

    查看一个表格所有字段属性

    desc 表名; ------------------查看表所有字段属性配置

    3、修改表

    alter table...

    语法:

    1. 修改表名
          alter table  表名 
                              rename 新表名;
    
    2. 增加字段
          alter table 表名
                              add 字段名    数据类型 [完整性约束条件…],
                              add 字段名    数据类型 [完整性约束条件…];
                              
                                ##在后面顺序添加字段
         
         alter table 表名
                              add 字段名    数据类型 [完整性约束条件…]  first;
                              
                                ##在最前面添加字段
          
        alter table 表名
                              add 字段名    数据类型 [完整性约束条件…]  after 字段名1;
                              
                                ##在字段1后面添加字段
    
    
    3. 修改字段
          alter table 表名 
                              modify  字段名   数据类型 [完整性约束条件…];
                              
                                    (##只能改字段的属性,改不了字段名)
                                    
          alter table 表名 
                              change  旧字段名 新字段名   旧数据类型 [完整性约束条件…];
                              
                                  (##连字段名字都能改)
                                  
          alter table 表名 
                              change  旧字段名 新字段名   新数据类型 [完整性约束条件…];
    
    
    4. 删除字段
          alter table 表名 
                              drop 字段名;

    外键添加和删除:

    // 添加:
    mysql>alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid);
    mysql>alter table <表名> add constraint <外键名> foreign key<字段名> REFERENCES <外表表名><字段名>;
    
    // 删除:
    mysql>alter table tb_people drop foreign key fk_1;
    mysql>alter table <表名> drop foreign key <外键名>;

    4、复制表

    1)复制表结构+记录 (key不会复制: 主键、外键和索引)

    mysql> create table new_table select * from service;

    2)只复制表结构

    ▼1
    mysql> select * from service where 1=2;        //条件为假,查不到任何记录
    Empty set (0.00 sec)
    mysql> create table 新表名 select * from 表 where 1=2;  
    Query OK, 0 rows affected (0.00 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    ▼2
    mysql> create table 新表名 like 表名;      //复制主键...

    5、删除表

    drop table tb_name ------------删除表
  • 相关阅读:
    APDU:APDU常用指令
    其他:IntelliJ IDEA设置运行内存
    Linux:获取Linux离线postgresql数据库安装包并部署
    资源:Postgresql数据库下载路径
    免费版:Xshell和Xftp下载路径
    Raspberry Pi:树莓派开发板配置USB启动系统
    Raspberry Pi:树莓派安装基础系统 Raspberry Pi(树莓派系统)
    Raspberry Pi:树莓派安装Kali2021新版本
    Docker:虚拟机挂起后,再启动docker容器连接失败
    Docker:docker搭建redis一主多从集群(配置哨兵模式)
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/9299922.html
Copyright © 2011-2022 走看看