库操作&表操作

系统数据库

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 ------------删除表
原文地址:https://www.cnblogs.com/zhzhlong/p/9299922.html