精华内容
下载资源
问答
  • 数据库表的操作 1.创建一张 create table 表名( 字段名 类型(长度) [约束], 字段名 类型(长度) [约束], 字段名 类型(长度) [约束] ); 2.查看数据库表 show tables; **查看的结构 desc 表名** 3.删除一张 ...

    对数据库表的操作

    1.创建一张表

    create table 表名(
    字段名 类型(长度) [约束],
    字段名 类型(长度) [约束],
    字段名 类型(长度) [约束]
    );

    在这里插入图片描述

    2.查看数据库表

    show tables;

    在这里插入图片描述
    **查看表的结构

    desc 表名
    在这里插入图片描述

    3.删除一张表

    drop table 表名

    在这里插入图片描述

    4.修改表

    4.1 添加一列

    alter table 表名 add 字段名 类型(长度) [约束]

    在这里插入图片描述

    4.2 修改列的类型(长度、约束)

    alter table 表名 modify 要修改的字段名 类型(长度) [约束]

    在这里插入图片描述

    4.3 修改列的列名

    alter table 表名 change 旧列名 新列名 类型(长度) [约束]

    在这里插入图片描述

    4.4 删除表的列

    alter table 表名 drop 列名

    在这里插入图片描述

    4.5 修改表名

    rename table 表名 to 新表名

    在这里插入图片描述

    4.6 修改表的字符集

    alter table 表名 character set 编码

    在这里插入图片描述

    查看当前表的编码

    在这里插入图片描述

    展开全文
  • MySQL创建数据库和创建数据表

    万次阅读 多人点赞 2019-10-20 23:44:40
    这之前,需要先安装好 MySQL ,然后创建好数据库数据表、操作用户。 一、数据库操作语言 数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是SQL(Structured Query Language) 结构化查询语言。...

    MySQL 创建数据库和创建数据表

    MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。

    在这之前,需要先安装好 MySQL ,然后创建好数据库、数据表、操作用户。

    一、数据库操作语言

    数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是 SQL(Structured Query Language) 结构化查询语言。

    SQL 的主要功能是和数据库建立连接,进行增删改查的操作。SQL是关系型数据库管理系统的标准语言。

    SQL 语言的作用:

    1. 数据定义语言 DDL(Data Definition Language) 。用于创建数据库,数据表。

    2. 数据操作语言 DML(Data Manipulation Language) 。用于从数据表中插入、修改、删除数据。

    3. 数据查询语言 DQL(Data Query Language) 。用于从数据表中查询数据。

    4. 数据控制语言 DCL(Data Control Language) 。用来设置或修改数据库用户或角色的权限。

    使用 SQL 操作数据库时,所有的 SQL 语句都以分号结束。(切换数据库时可以不用分号)

    在 SQL 语句中,不区分大小写,编写 SQL 语句时可以根据情况用大小写的区别来增加可读性。

    二、创建数据库

    1. 连接 MySQL

    输入 mysql -u root -p 命令,回车,然后输入 MySQL 的密码(不要忘记了密码),再回车,就连接上 MySQL 了。

    mysql -u root -p

    最初,都是使用 root 用户登录,工作中如果一直用 root 用户登录,因为权限太大,风险是很大的,所以等创建好权限适合的用户后,就不要经常登录 root 用户了。

    2. 查看当前的数据库

    使用 show databases; 查看当前安装的 MySQL 中有哪些数据库。

    show databases;

    刚安装 MySQL 时,默认有四个数据库,information_schema,mysql,perfomance_schema,sys 。通常情况下,我们不会直接使用这四个数据库,但千万不要把这四个数据库删了,否则会带来很多不必要的麻烦。如果不小心删了,建议是重新安装 MySQL ,在重装之前把自己的数据迁移出来备份好,或者从其他服务器上迁移一个相同的数据库过来。

    3. 创建数据库

    使用 create database 数据库名; 创建数据库。

    create database MyDB_one;

    创建数据库成功后,数据库的数量变成了5个,多了刚才创建的 MyDB_one 。

    4. 创建数据库时设置字符编码

    使用 create database 数据库名 character set utf8; 创建数据库并设置数据库的字符编码。

    create database MyDB_two character set utf8;
    

    直接创建的数据库,数据库的编码方式是 MySQL 默认的编码方式 latin1 (单字节编码) ,通常我们会在数据库中存放中文数据,所以最好把数据库的编码方式设置成 utf-8 ,这样中文才能正常显示。

    create database MyDB_three charset utf8;

    character set 可以缩写成 charset ,效果是一样的。

    5. 查看和显示数据库的编码方式

    使用 show create database 数据库名; 显示数据库的创建信息。

    show create database MyDB_one;
    show create database MyDB_two;

    如果不知道一个数据库的编码方式是什么,可以使用 show create database 数据库名 来查看数据库的编码方式。可以看到刚才创建的 MyDB_one 的编码方式是 MySQL 的默认编码 latin1 ,MyDB_two 的编码方式是 utf-8 。

    当然,这种方式不能在创建的同时显示,只能查看一个已经存在的数据库的编码方式。

    6. 使用 alter database 数据库名 character set utf8; 修改数据库编码

    alter database MyDB_one character set utf8;

    如果一个数据库的编码方式不符合使用需求,可以进行修改。刚才创建的 MyDB_one 经过修改后,编码方式也变成了 utf-8 。

    7. 进入或切换数据库

    使用 use 数据库名 进入或切换数据库。

    use MyDB_one
    use MyDB_two;

    刚连接上 MySQL 时,没有处于任何一个数据库中,如果要使用某一个数据库,就需要进入到这个数据库中。

    use 数据库名 这个命令后面的分号可以省略,这是 SQL 语句中唯一可以省略分号的语句。

    8. 显示当前数据库 select database();

    select database();

    进入数据库中,可以使用 select database(); 来查看当前处于哪个数据库中。长时间操作数据库时,在很多数据库中来回切换后,查看当前的数据库,避免操作错了数据库。

    三、创建数据表

    1. 查看当前数据库中的表

    使用 show tables;查看当前数据库中有哪些表。

    show tables;
    

    在刚才创建的数据库 MyDB_one 中,还没有创建任何表,所以当前是空的。

    2. 创建表

    使用 create table 表名(字段1 字段类型,字段2 字段类型,字段3 字段类型,…); 来创建一张表。

    create table Phone_table(pid INT, name CHAR(20), price INT);

    在 MyDB_one 中创建了一个叫 Phone_table 的数据表,这张表有三个字段 pid,name,price 。为了增加 SQL 的可读性,字段名我用的是小写,字段类型用大写。

    3. 显示表信息

    用 show create table 表名; 来显示已创建的表的信息。

    show create table Phone_table;

    使用 show create table 表名;  可以显示表的字段信息, MySQL 的引擎,和默认的字符编码等信息。与显示数据库信息一样,show 只能显示已经创建了的数据表的信息,不能在创建的同时显示信息。

    如果想更好地展示表的字段信息,可以使用 desc 表名; 来显示表的字段信息。

    4. 给表增加字段

    使用 alter table 表名 add 字段名 数据类型; 为已存在的表添加一个新字段。

    alter table Phone_table add color CHAR(20);

    添加后,刚才的表中多了一个字段,新增成功。

    5. 删除表的字段

    使用 alter table 表名 drop 字段名; 删除一个表中已存在的字段。

    alter table Phone_table drop price;

    删除字段后,表中不再有该字段。

    6. 修改字段的数据类型

    使用 alter table 表名 modify 字段名 数据类型; 修改表中现有字段的数据类型。

    alter table Phone_table modify name VARCHAR(12);

    修改之后,该字段的数据类型发生改变。

    7. 修改字段的数据类型并且改名

    使用 alter table 表名 change 原字段名 新字段名 数据类型; 修改表中现有字段的字段名和类型。

    alter table Phone_table change name pname CHAR(18);

    现在,将表的 name 改成了 pname ,同时修改了 pname 的数据类型。

    四、MySQL 常用字段类型

    一个数据表是由若干个字段组成的,一个表十几个字段也很正常,每个字段表示不同的信息,需要使用不同类型的数据。

    所以在创建表的时候,要为每个字段指定适合的数据类型。

    MySQL 中常用的字段类型有以下这些:

    1. 整数类型

    数据类型数据范围
    TINYINT-128 -- 127
    SMALLINT-32768 -- 32767
    MEDIUMINT-2^23 -- 2^23-1
    INT-2^31 -- 2^31-1
    BIGINT-2^63 -- 2^63-1

    2. 字符串类型

    数据类型字节范围用途
    CHAR(n)0 -- 255字节定长字符串
    VARCHAR(n)0 -- 65535字节变长字符串
    TEXT0 -- 65535字节长文本数据
    LONGTEXT0 -- 2^32-1字节极大文本数据
    BLOB0 -- 65535字节二进制长文本数据
    LONGBLOB0 -- 2^32-1字节二进制极大文本数据

    3. 小数类型

    m 表示浮点数的总长度,n 表示小数点后有效位数。

    数据类型数据用法数据范围
    FloatFloat(m,n)7位有效数
    DoubleDouble(m,n)15位有效数
    DecimalDecimal(m,n)28位有效数

    4. 时间类型

    数据类型格式用途
    DATEYYYY-MM-DD日期
    TIMEHH:MM:SS时间
    YEARYYYY年份
    DATETIMEYYYY-MM-DD HH:MM:SS日期和时间
    TIMESTAMP10位或13位整数(秒数)时间戳

    5. 枚举类型

    enum(枚举值1,枚举值2,...)

    枚举类型只能在列出的值中选择一个,如性别。

     

     

    展开全文
  • 数据库数据表

    千次阅读 2018-07-11 09:37:33
    数据有组织,按照特定的格式存储介质上叫做数据库 二、比较多个数据库系统 a) Oracle 最好的数据库没有之一 b) SQL server 最好的数据库(windows) c) MySQL 甲骨文(Oracle) sun 开源 三、SQL语言 a) ...

    数据库

    一、什么是数据库

       存储数据的仓库

    将数据有组织,按照特定的格式存储在介质上叫做数据库

    二、比较多个数据库系统

    a) Oracle   最好的数据库没有之一

    b) SQL server  最好的数据库(windows)

    c) MySQL     甲骨文(Oracle) sun 开源

    三、SQL语言

    a) SQL(结构化查询语句) 数据库管理系统通过sql语句来管理数据库中的数据

    1. 数据定义语言(DDL)

    用来定义和管理数据对象,包括数据库、数据表 例如: CREATE、DROP 等

    2. 数据操作语言(DML)

    用来操作数据库对象中的所有数据  例如:INSERT UPDATE DELETE

    3. 数据查询语言(DQL)

    用来查询数据对象中的所有数据  例如:SELECT

    4. 数据控制语言(DCL)

    用来管理数据库的语言,包含赋予权限和更改权限  数据库更改 等 例如GRANT

    四、为什么我们要学习MySQL

    i. MySQL 免费

    ii. 跨平台

    iii. 功能强大且方便

    五、web开发原理

    spacer.gif

     

    六、登录和退出mysql服务器

    1. 登录: 呼叫 windows键+r 出现运行框

    2. 出现下面内容

    spacer.gif

    3. 在运行框中输入下面内容

    1. mysql -h localhost -uroot -p123456

    2. mysql -h localhost -uroot -p(推荐使用这种方式)

    password:******

    3. 使用wamp->mysql->mysql console->输入密码回车

    4. mysql -h localhost -uroot -p

    -h主机名 -u 用户名  -p 密码

    主机名: 就是你要链接数据库的所在ip localhost是本地主机名  只能在本地使用

    mysql -h 192.168.40.25

    用户名:root 是数据库最高用户 超级用户

    密码: 默认密码是空

    5. 如果在运行框输入找不到文件那么请进行下面操作

    打开计算机右键->找到属性->找到高级系统设置->环境变量->在上下都找path这个内容->在path内容上填上下面内容->(C:\wamp\bin\mysql\mysql5.7.11\bin)你需要找到你的wamp路径去复制粘贴上

    6. 退出

    a) exit退出

    b) \q 退出

    注意:

    1. 每个sql命令都需要使用分号来完成或者使用\G

    2. 可以将一行命令拆分为多行

    3. 可以通过\c 来取消本行命令

    4. 可以通过exit 或者\q退出

     

    我们可以通过一些快捷进行使用 help

    1. 将查询结果立起来: \G

    2. 取消当前为完成的操作:\c

    3. 退出当前客户端:\q

    4. 显示当前服务器状态:\s

    5. 显示帮助信息:\h

    七、查看数据库及创建数据库

    i. 查看数据库

    SHOW DATABASES;(推荐使用大写)

    ii. 创建数据库 [](中括号代表可写可不写不是必须有的内容)

    CREATE DATABASE [IF NOT EXISTS] 数据库名(小写)

    CREATE DATABASE IF NOT EXISTS  ss21  如果创建的数据库不存在我们则创建数据库

    八、选择数据库及查看数据库中数据表

    i. 选择数据库

    USE 数据库名

    USE ss21;

    如果你不使用上面命令 会出现下面错误代码

    ERROR 1046 (3D000): No database selected

    ii. 查看数据库中数据表

     SHOW TABLES;

    九、删除数据库

     DROP DATABASE [IF EXISTS] 数据库名

    例如: DROP DATABASE IF EXISTS ss21;   如果存在我们就删除

    注意:

    1. MySQL 数据库中命令不区分大小写

    2. 每创建一个数据库 就会在data目录下创建一个相应名字的文件夹

    3. 在windows下面 数据库名称也是不区分大小写的 但是在linux 下数据库名严格区分大小写

    十、创建一个简单的数据表(了解)

      CREATE TABLE IF NOT EXISTS user(

    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(255) NOT NULL UNIQUE,

    sex  TINYINT NOT NULL DEFAULT 1,

    age  TINYINT NOT NULL DEFAULT 0

    )ENGINE = MyISAM DEFAULT CHARSET=utf8;

    十一、表中数据简单管理(增 删 改 查)(重点重点重点)

    1. 添加数据

    INSERT INTO 表名 VALUES(值)

    INSERT INTO  user VALUES(NULL,’球球’,10,120);

    2. 查询数据

    SELECT * FROM 表名;

    SELECT * FROM user;

    3. 修改数据

    UPDATE 表名 SET 你要修改的字段名 WHERE id=数字

    UPDATE  user SET name=’李想’,sex=’0’,age=18 WHERE id=1

    4. 删除数据

     DELETE FROM 表名  WHERE id =数字;

    DELETE FROM user WHERE id=1

    注意:千万where id 后面要有值 否则就是全部删除

    十二、新建普通用户

    GRANT SELECT ON *.* TO ‘wenzhuo’@’localhost’ IDENTIFIED BY ‘123456’

    * 代表所有  前面的* 代表所有库  后面的* 代表所有表

    @ 前面写的是用户名 后面写的是主机名   

    主机名  只有本机的时候localhost 如果是别的主机 主机名就是别的主机的ip地址 例如 192。168.204.138

    重点: GRANT 语句 不仅可以创建用户 也可以修改用户密码  而且还可以设置用户权限 因为 GRANT语句是mysql中非常非常非常重要的语句

    十三、查看所有用户

    SELECT user,host FROM mysql.user;

    十四、删除普通用户

    DROP USER 用户名@主机名;

    例如: DROP USER ‘jiuqin’@‘localhost’

    十五、root 用户修改自己密码

    SET PASSWORD = PASSWORD(‘新密码’);

    注意:新密码必须使用PASSWORD() 加密函数进行加密

    十六、root 用户修改普通用户密码

    SET PASSWORD FOR ‘用户名’@’主机名’ = PASSWORD(‘新密码’)

    SET PASSWORD FOR ‘wenzhuo’@‘localhost’=PASSWORD(‘wenzhuo520’)

    十七、授权

    GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO ‘wenshuai’@’localhost’ IDENTIFIED BY ’wenshuaiaiwenzhuo’

    GRANT SELECT,INSERT,UPDATE,DELETE ON ss21.* TO ‘wanli’@’localhost’ IDENTIFIED BY ‘wanli404’

    GRANT:被授权的用户可以将这些权限赋值给别的用户

    十八、收回权限及查看权限

     1. 查看权限

    SHOW GRANTS FOR ‘用户名’@’主机名’

     2. 收回权限

    REVOKE INSERT,UPDATE,DELETE ON ss21.* FROM ‘用户名’@‘主机名’

    十九、数据备份

    需要在cmd 命令行   windows+r   在运行框中 输入cmd

    开始->所有程序->附件->命令提示符

    mysqldump -u用户名 -p  库名表名 >  保存的路径

    例如: mysqldump -uroot -p ss21 > C:\ss21.sql

    如果 在备份当中出现拒接访问  说明你的权限不够

    请使用超级管理员权限打开文件

     Can't connect to MySQL server on 'localhost' (10061) 服务没有启动

    二十、还原数据

    首先必须先准备一个空的数据库  ss21

    mysql -u 用户名 -p  库名 < 保存的地址

    mysql -uroot -p ss21 < C:\ss21.sql

    重要的事情需要说三遍  别写分号  别写分号 别写分号

    数据表类型

    一、 创建数据表

     CREATE TABLE IF NOT EXISTS user(

    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(255) NOT NULL UNIQUE,

    Sex TINYINT  NOT NULL DEFUALT 1,

    age TINYINT  NOT NULL DEFAULT 0

    )ENGINE = MyISAM DEFAULT CHARSET=utf8;

    CREATE  TABLE  IF NOT EXISTS 表名称(

      字段名1  类型(长度) 属性  索引,

    字段名2  类型(长度) 属性  索引,

    字段名3  类型(长度) 属性  索引,

    字段名4  类型(长度) 属性  索引,

    字段名5  类型(长度) 属性  索引,

    ...

    字段名N  类型(长度) 属性  索引,

    ) ENGINE =MyISAM  DEFAULT  CHARSET =utf8;

    html  设置字符集  utf-8

    mysql 设置字符集  utf8

     

     二、 mysql 数据类型

       1. 整数类型(重点重点重点)

    整数类型

    字节数

    无符号范围

    有符号范围

    TINYINT(微整型)

    1

    +0 - +255

    -128- +127

    SMALLINT(小整型)

    2

      0-65535

    -32768-32767

    MEDIUMINT(中整型)

    3

    0-16777215

     -8388608-8388607

    INT(整型)

    4

     0-4294967295

    -2147483648-2147483647

    BIGINT(大整型)

    8

    0-188446744073709551615

     

    mysql 支持的数据类型后面指定该类型的宽度, 基本形式如下:

    数据类型(显示宽度)

    默认显示宽度: 可以理解为 一个整数类型的默认宽度正好能显示该数据类型的所有值的宽度  默认长度其实是当前位数减一 为什么要减一 是因为第一位是我们的符号位

     n1    | tinyint(4)

     n2    | smallint(6)

     n3    | mediumint(9)

     n4    | int(11)

     n5    | bigint(20)

     在整数类型使用是 可以配置zerofill 参数 zerofill 表示数字不足的显示空间由0来填充补全

    出现下面报错的原因是

    Out of range value for column 'n1' at row 1

    你的长度超出了范围

    注意:

    使用zerofill是 mysql会自动加上unsigned(无符号)属性 那么该整数类型只能表示无符号数  器显示长度比默认显示宽度小一

    在设置了显示宽度时 如果插入的数据宽度大于设置的显示宽度 数据依然可以插入  且能够显示  但是该设置的宽度失效

    数据的宽度不能大于默认宽度 如果大于默认宽度 那么该数据已经超出该类型的最大值 因为最大值的宽度必须小于等于默认宽度  如果一个值大于最大值 将不能插入

     

    -- 整数类型还有一个属性 AUTO_INCREMENT 属性    自增

    -- 自增属性需要配合索引使用

     

    -- 如果出现下面报错 请在你自增属性后面加上你的索引内容

    -- ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

    -- key(index) 索引

    -- 普通索引(index)

    -- 唯一索引(unique)  唯一索引所有值不能有重复

    -- 主键索引primary key  一个数据表中只能有一个  唯一作用 一般设置都是自增字段

     

    zerofill 零填充

    unsigned   无符号

    auto_increment  自增

    只能修饰整数类型

     2. 浮点数和定点数

     mysql 中使用浮点数和定点数来表示小数

    浮点数: 单精度浮点数(float) 和双精度浮点数(double)

    定点数: DECIMAL

    定点数在存储空间 是根据精度来决定的

    mysql中可以指定浮点数的精度: 数据类型(M,D)

    M 精度   是数据的总长度  小数点不占位

    D  标度   小数点后的长度

    在存储小数的时候 建议使用decimal类型 定点数以字符串形式存储 因此精度要比浮点数更高  而且浮点数容易出现误差 这是浮点数一直存在的问题 如果对数据的精度要求很高 还是选择定点数比较安全

    如果标度超出位数那么他会进行四舍五入如果你的精度和标度一样那么我们的整数位只能是零

     3. 时间

    -- 时间戳

    -- 2147483647

    INT 2147483647

    因为php可以有date函数  你想处理什么样子都可以  所以我们使用时间戳来存储我们php的时间

    4. 字符串类型

     字符串类型是mysql中用来存储字符串的数据类型 字符串类型包含: VARCHAR  CHAR  TEXT  ENUM   SET

    CHAR 和VARCHAR

    字符串类型(M) M-- 该字符串的最大长度 M

     CHAR 定长的字符类型  0-255

    VARCHAR  变长的字符类型 5.0以前 0-255 5.0版本以后 0-65535

    char(5) 和 varchar(5)区别

     插入值      char 占用字数      varchar占用字数

      1   5  2

      123  5 4

    1234          5 5

      12345  5 6

    CHAR 定长字符类型   分配多少空间就占用多少空间 不计算需要的长度  处理数据速度快

    VARCHAR 变长字符类型   根据字符串的长度来分配空间  需要计算长度   处理数据速度稍慢

    什么时候用char  什么时候用varchar

    当你插入的数据长度一直不变的情况下 请使用char  密码需要使用char

    当你插入的数据长度是随时改变的情况下  使用varchar  用户名需要使用varchar

      ENUM 类型  枚举类型

    ENUM(‘值1,值2,值3,,,,,值n’)

    n--代表参数列表中的第n个值 n 65535

    ENUM 的值只能去列表中的一个元素

    1/65535

    SET 类型

    在创建表是 set类型的取值范围是以列表的形式指定的

    set(‘值1,值2,值3,。。。值n’);

    set 类型的值最多只是64个元素 取值可以是一个或者多个 其他特性和enum类似

    1-64/64

    三 查看表结构

     DESC 表名 : 缩写版

     DESCRIBE 表名

     

    查看建表语句

    SHOW CREATE TABLE 表名

     

    四 创建表

    1. 建表语法

    CREATE  TABLE  IF NOT EXISTS 表名称(

      字段名1  类型(长度) 属性  索引,

    字段名2  类型(长度) 属性  索引,

    字段名3  类型(长度) 属性  索引,

    字段名4  类型(长度) 属性  索引,

    字段名5  类型(长度) 属性  索引,

    ...

    字段名N  类型(长度) 属性  索引,

    ) ENGINE =MyISAM  DEFAULT  CHARSET =utf8;

    a. 设置主键

    PRIMARY KEY

    字段名  数据类型  PRIMARY KEY

    b. 设置表的非空约束

     字段名  数据类型 NOT NULL

    不为空 只是不为null

    c. 设置表的唯一性

     字段名 数据类型 UNIQUE

    d. 设置表字段值的自增

       字段名 数据类型 AUTO_INCREMENT

    如果你设置自增就必须加上 索引 PRIMARY KEY

    e. 设置表的字段默认值

    字段名 数据类型 DEFAULT 默认值

    f. 设置字段的数字类型 不能为负数

    字段名 数据类型 UNSIGNED

    g. 建表引擎

     MyISAM

     InnoDB

    MyISAM 与 InnoDB 的区别

    myisam  读取速度快  不支持事务

    InnoDB  读取速度稍慢  支持事务   事务回滚

     

     ===================================

    根据我们昨天学的内容创建一个表

    ERROR 1062 (23000): Duplicate entry 'user1' for key 'name'

    说明你的user1在name字段里面有值了 而且你的name字段是唯一字段

    2. 修改表(重点重点)

    a) 修改表名

    ALTER TABLE 表名 RENAME TO 新表名

    b) 修改字段的数据类型

    ALTER TABLE 表名 MODIFY 字段名  数据类型 属性 索引;

    c) 修改字段名

    ALTER TABLE 表名 CHANGE 老字段名 新字段名  数据类型 属性 索引;

    d)  增加字段

    ALTER TABLE 表名 ADD 字段名 数据类型 属性 索引 [FIRST|AFTER 字段名]

    如果后面first和after 不写的情况下 默认是添加到字段末尾

    e)  删除字段

    ALTER TABLE 表名 DROP 字段名

    ERROR 1091 (42000): Can't DROP 'phone'; check that column/key exists

    删除不存在的字段 会报上面的错误

    f) 修改字段的排列位置

    ALTER TABLE 表名 MODIFY 字段1 数据类型 属性 索引 AFTER 字段2

    g) 修改表引擎

     ALTER TABLE 表名 ENGINE = 引擎名

    数据量大的时候 不建议像上面一样去修改表引擎 而是先创建一个和myuser表一样的表 然后把空表的引擎修改为我们要修改的引擎之后将数据导入到新表中即可

    h) 将自增改为现在的最大值

    ALTER TABLE 表名 AUTO_INCREMENT=0;

    展开全文
  • MySQL(一) 数据表数据库的基本操作

    千次阅读 2021-01-18 23:53:55
    序言这类文章,记录我看《MySQL5.6从零开始学》这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍,基本上就搞定了,前期很...

    序言

    这类文章,记录我看《MySQL5.6从零开始学》这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍,基本上就搞定了,前期很难理解的东西基本没有,所以写博文的内容,就是以练题的形式来呈现的。

    需要用的资料以链接的形式给需要的同学。

    图形化工具 Navicat(前期不推荐用,直接手动敲): Navicat  密码:c7fs

    开始我的MySQL之旅吧    始于2016.12.04

    --WZY

    一、数据库的安装

    这个就不在这里过多阐述了,因为网上实在是太多安装mysql的教程了,有了我给的mysql,在按照这个安装教程(MySQL安装教程)去看,就能够安装完好。

    安装好mysql后,如果需要使用windows命令窗口(也就是cmd)来操作mysql,那么就需要配置环境变量,在安装好的mysql下找到bin,将其目录放到环境变量path中去,就行了,检测成功与否的方法是在cmd命令窗口中输入mysql,就会出现一大段英文,就说明成功了,反之失败,如果不会的话就去百度搜教程。

    二、数据库的基本操作

    1、开启mysql服务命令

    net start mysql

    49d2f22f4f56ec2a8a10700407bd5a1b.png

    2、进入mysql的两种方式

    明文进入:mysql -uroot -proot  格式:mysql -u帐号 -p密码

    密文进入:mysql -uroot -p 按enter会提示你输入密码(Enter pssword:),此时你写的密码就会显示为***这样。

    108723a8a8d9d01a4c3e8f1160cf022a.png

    3、查看mysql中所有的数据库(一般在固定的单词命令就会是用大写,这个要习惯,看多了敲多了就认识了)

    前面四个数据库是mysql中自带的,也就是必须的.

    SHOW DATABASES;

    274641606d968758d6dd28edafdcff6f.png

    4、创建名为test_1的数据库

    格式:CREATE DATABASE 数据库名

    CREATE DATABASE test_1;

    72a33cbbdca7e6dcae9dc5033a06342b.png

    5、删除名为test_1的数据库

    格式:DROP DATABASE 数据库名

    DROP DATABASE test_1;

    e4266f729203538a8f22c8fc738ffe71.png

    总结:学习了对数据库的三个操作,1、查看所有数据库  2、创建数据库  3、删除数据库

    三、数据表的基本操作

    数据表和数据库还有Mysql三者的关系

    mysql中保存了很多数据库、一个数据库中可以保存很多表。

    对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。  注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)

    前提:表是在数据库下的,所以要先确实使用哪个数据库。

    USE test_1;

    2d2d1467dbd43a41828efd36c064e648.png

    1、创建数据表

    格式:CREATE TABLE 数据表名(

    字段名1  数据类型[列级别约束条件],

    字段名2  数据类型[列级别约束条件],

    字段名3  数据类型[列级别约束条件]

    );     注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。

    解释:1、[]中括号中的内容表示可以有可以没有,2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横 3、约束条件后面会讲到

    1.1、创建没有约束的student表

    CREATE TABLE student(

    id  INT(11),

    name  VARCHAR(12),

    age  INT(11)

    );

    54fd8c4ef4bf7f69780a2018eeb306db.png

    注释:SHOW TABLES 查询数据库底下的所有表。

    1.2、创建有约束的student表

    六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增加

    1.2.1:主键约束

    PRIMARY KEY(primary key):独一无二(唯一)和不能为空(非空),通俗的讲,就是在表中增加记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增加两条记录,如果id字段用了主键约束。则id不能一样,并且不能为空。一般每张表中度有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,因为主键是唯一的,并且非空,一张表中每个记录的主键度不一样,所以根据主键也就能找到对应的记录。而不是多条重复的记录。如果没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也消耗更多资源。

    一般被主键约束了的字段度习惯性的称该字段为该表的主键

    单字段主键约束

    两种方式都可以

    CREATE TABLE student(            CREATE TABLE student(

    id  INT(11) PRIMARY KEY,          id  INT(11),

    name  VARCHAR(12),            name  VARCHAR(12),

    age  INT(11)                 age  INT(11),

    );                          PRIMARY KEY(id) );

    多字段主键约束(复合主键)

    这个id和name都市主键,说明在以后增加的插入的记录中,id和name不能同时一样,比如说可以是这样。一条记录为id=1,name=yyy、另一条记录为:id=1,name=zzz。 这样是可以的。并不是你们所理解的两个字段分别度不可以相同。

    CREATE TABLE student(              CREATE TABLE student(

    id  INT(11) PRIMARY KEY,            id  INT(11),

    name  VARCHAR(12) PRIMARY KEY,       name  VARCHAR(12),

    age  INT(11)                   age  INT(11),

    );                            PRIMARY KEY(id,name) );

    1.2.2:外键约束

    什么是外键举个例子就清楚了,有两张表,一张表是emp(员工)表,另一张表是dept(部门)表,一个员工属于一个部门,那么如何通过员工能让我们自己他在哪个部门呢?那就只能在员工表中增加一个字段,能代表员工所在的部门,那该字段就只能是存储dept中的主键了(因为主键是唯一的,才能确实是哪个部门,进而代表员工所在的部门,如果是部门名称,有些部门的名称可能是同名。就不能区分了。),像这样的字段,就符合外键的特点,就可以使用外键约束,使该字段只能够存储另一张表的主键。如果不被外键约束,那么该字段就无法保证存储进来的值就一定是另一张表的主键值。

    外键约束的特点:

    1、外键约束可以描述任意一个字段(包括主键),可以为空,并且一个表中可以有多个外键。但是外键字段中的值必须是另一张表中的主键。

    2、这样被外键关联的两种表的关系可以称为父子表或者主从表。子表(从表)拥有外键字段的表,父表(主表)被外键字段所指向的表。

    3、子表被外键约束修饰的字段必须和父表的主键字段的类型一样。

    注意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键”。而不是“是外键”),并会给该表中的外键约束取一个名称,所以我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束。也就是说,不能说这个表的外键是xxx(该表中被外键约束修饰的字段名),这种说法是错误的,但是大多数人已经习惯了这样,虽然影响不大,但是在很多时候需要理解一个东西时,会造成一定的困扰。

    格式:CONSTRAINT  外键名称  FOREIGN KEY(被外键约束的字段名称)  REFERENCES  主表名(主键字段)

    英文解释:CONSTRAINT:约束    REFERENCES:参考

    CREATE TABLE tableA

    (

    id INT(11),

    name VARCHAR(22),

    location VARCHAR(50),

    PRIMARY KEY(id)

    );

    CREATE TABLE tableB

    (

    id INT(11),

    name VARCHAR(22) NOT NULL,

    deptId INT(11),

    PRIMARY KEY(id),

    CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)

    );

    解释:tableB中有一个名为tableA_tableB_1的外键关联了tableA和tableB两个表,被外键约束修饰的字段为tableB中的deptId,主键字段为tableA中的id

    1.2.3:非空约束

    NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束

    CREATE TABLE tableA

    (

    id INT(11),

    name VARCHAR(22) NOT NULL,

    location VARCHAR(50),

    PRIMARY KEY(id)

    );

    1.2.4:唯一约束

    UNIQUE  被唯一约束修饰了的字段,表示该字段中的值唯一,不能有相同的值,通俗点讲,就好比插入两条记录,这两条记录中处于该字段的值不能是一样的。

    CREATE TABLE tableA

    (

    id INT(11),

    name VARCHAR(22) UNIQUE,

    location VARCHAR(50),

    PRIMARY KEY(id)

    );

    也就是说在插入的记录中,每条记录的name值不能是一样的。

    1.2.5:默认约束

    Default  指定这一列的默认值为多少,比如,男性同学比较多,性别就可以设置为默认男,如果插入一行记录时,性别没有填,那么就默认加上男

    CREATE TABLE table

    (

    id INT(11) PRIMARY KEY,

    name VARCHAR(22) NOT NULL,

    deptId INT(11) DEFAULT 1111,

    salary FLOAT

    );

    1.2.6:自动增加

    AUTO_INCREMENT 一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型     TINYINT,SMALLIN,INT,BIGINT),默认值是1,也就是说从1开始增加的。一般就是给主键使用的,自动增加,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成

    CREATE TABLE table

    (

    id INT(11) PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(22) NOT NULL

    );

    2、查询表结构

    2.1、查看表基本结构语句

    格式1:DESCRIBE 表名/DESC 表名  这两个的功能是一样的,简写了单词describe

    DESCRIBE student;

    ef77d62155478c01c30b98e5a12b5727.png

    2.2、查看创建表的语句

    格式:SHOW CREATE TABLE 表名

    SHOW CREATE TABLE student;

    c58684b95d726e85e9c16600be9bc3a2.png

    这样显示的格式很不好,看不清楚,所以有了下面这个语句

    格式:SHOW CREATE TABLE 表名\G

    SHOW CREATE TABLE student\G;

    bf25a497b7a8dbd3be8bf628848672ed.png

    3、修改数据表

    修改数据表包括:对表中字段的增加、删除、修改。  在这个里面用的关键字为 ALTER

    3.1、修改表名

    格式:ALTER TABLE RENAME[TO];

    将student表名改为student1(改完后在改回来)

    ALTER TABLE student RENAME TO student1;

    df66c65a59b273fd12645d86e381ea27.png

    3.2、修改表中的字段名

    格式:ALTER TABLE CHANGE

    将student表中的name字段名改为 username

    ALTER TABLE student CHANGE name username VARCHAR(30);

    9cb43034ba06c3ac519e44fae8327eb1.png

    解释:这个不仅能改变字段名,还能将字段的数据类型一并修改,也就是说,你可以单纯的只修改字段名,也可以单纯的只修改数据类型,也可以同时一起修改

    3.3、修改表中的数据类型

    格式:ALTER TABLE MODIFY

    ALTER TABLE student MODIFY username VARCHAR(20);

    b4c0389c6738f3c6a218d55b56d67fbb.png

    解释:只能修改字段名的数据类型,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。

    3.4、修改字段的排列位置

    方式1:ALTER TABLE MODIFY FIRST|AFTER

    解释:将字段1的位置放到第一,或者放到指定字段2的后面

    ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

    15e4ed47123867c2324d776c2a365d8e.png

    方式2:ALTER TABLE CHANGE FIRST|AFTER

    解释:其实是一样的,将是字段2覆盖字段1,然后在进行排序

    ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

    f9163ddeaaa0922045912a99e8c904ab.png

    总结

    CHANGE和MODIFY的区别?

    原理都市一样的,MODIFY只能修改数据类型,但是CHANGE能够修改数据类型和字段名,也就是说MODIFY是CHANGE的更具体化的一个操作。可能觉得用CHANGE只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字MODIFY来操作。

    3.5、添加字段

    格式:ALTER TABLE ADD[约束条件][FIRST|AFTER]

    解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。

    ALTER TABLE student ADD sex VARCHAR(11);

    9baaa6dc51cdc2f88df9f11fb75b7815.png

    3.6、删除字段

    格式:ALTER TABLE DROP;

    ALTER TABLE student DROP sex;

    4dbea08699ed344a32e915d01af32fee.png

    3.7、删除表的外键约束

    格式:ALTER TABLE DROP FOREIGN KEY

    注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。

    3.8、更改表的存储引擎

    格式:ALTER TABLE ENGINE=

    这个存储引擎目前我自己也不太清楚,虽然知道有哪几种引擎,但是稍微深入一点就不清楚了,所以打算留到日后在说。

    4、删除表

    4.1、删除无关联表

    格式:DROP TABLE;

    ALTER TABLE student;

    aa1d1e1168f8024e2dc02e57926eb09e.png

    4.2、删除被其他表关联的主表

    这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法

    1、先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除

    2、先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在3.7中就讲解了如何删除外键关系。

    四、总结

    讲了这么多,但实际中,用到的并不是很多,特别是对表结构的修改的操作,在实际开发中,一般数据库表被定义下来了,就不会在修改了,发现数据库表设计的不好,也是将表全部删除,然后在重新创建过新表。但是在我们学习的过程中,这些操作还是很重要的,因为需要这些基础来学习后面更深入的东西,不可能因为实际中不用,就不学这不学那,要相信,不管做什么,那肯定是有意义的事情,可能那意义并不大,但是日后肯定会对我们有所帮助。

    展开全文
  • 我们在使用 MySQL...关于编码格式在MySQL中有三个地方需要我们去关心。那么如何去查看和修改数据库数据表、表字段的编码格式呢?  数据库编码的查看与修改、数据表编码的查看与修改、表字段编码的查看与修改。
  • Mysql数据库中日期格式设置

    千次阅读 2018-06-04 14:38:02
    第一步,首先字段日期类型是,datatime 不是date (date类型只是有年月日); 第二部,执行这个sql SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(这里写日期字段的名字),'%Y-%m-%d %H:%i:%s') FROM 这里写是那张表;...
  • 数据库 - 数据字典及其使用

    千次阅读 2019-07-22 10:05:44
    将如下这些具有相同类型的配置项,配置到系统的数据字典中,方便系统维护,由超级管理员统一后台进行数据字典维护,如果用户需求要增加变更配置项,只需要修改数据字典记录即可,不需要修改代码。 1.2数据...
  • 设置oracle数据库显示格式

    千次阅读 2018-05-14 09:22:06
    设置oracle显示格式;一般我们查询效果如下:不方便我们看;因此:SQL&gt; set linesize 500行容量SQL&gt; set pagesize 50页容量效果如下是不是瞬间感觉干净明了了~...
  • 写给初学者,高手请忽略:有时我们需要将Excel中的数据导入到数据库对应的中,若是挨个编写SQL会非常繁琐,下面介绍如何一次性导入成千上万,乃至数十万条数据> Step1: 首先我们需要将excel中的数据按照对应的...
  • 文章目录一、 InnoDB存储引擎的空间二、 创建数据库表 一、 InnoDB存储引擎的空间 查看数据库空间 利用如下命令可以查看数据库空间。 mysql> show variables like 'InnoDB_data%'; 空间有四个...
  • #python中将数据库查询的tuple数据转换为dataframe格式 df = pd.DataFrame(list(result)) print(df) # res 打印结果 6675 5 3909834 6676 200 3064399 6677 5 3933021 6678 62 2034747 6679 2 2159627 6680 200 2643...
  • MySQL数据库修改数据表引擎

    万次阅读 2018-08-16 16:37:04
    mysql 类型说明  MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的 顺序访问方法) 的缩写,它是存储记录和文件的标准方法。与其他存储引擎比较,MyISAM具有...
  • 为什么要指定编码格式 为了防止不能插入中文数据这种情况的发生 如何指定编码格式 创建数据库时用如下 SQL 语句指定:CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 数据库如何修改编码格式

    千次阅读 2018-06-23 21:10:38
    转载于https://blog.csdn.net/hai_chao/article/details/79209408最近经常群里碰到问数据库编码格式怎么修改的同学,这类的问题是老生常谈的问题,也是编程过程中经常让人避之不及的问题。之前也被编码格式问题...
  • 6.MySQL数据库数据表操作

    千次阅读 2021-09-01 12:05:08
    6.MySQL数据库数据表操作 数据库的操作:数据库创建 ;数据库删除 数据表的操作:数据表的创建;数据表的修改 (结构) ;数据表的删除 数据库的操作 1.数据库的创建 # 链接mysql数据库后,进入mysql后可以...
  • 1.准备好Excel表数据 id category_id category_pid title art_desc content imageurl tags   create_time   3 1 Excel测试标题1 描述1 内容1 图片地址1 tags1...
  • mysql数据库设置编码格式

    千次阅读 2013-04-24 09:49:46
    mysql数据库设置编码格式  说起数据库编码格式很多程序员都会很头疼,因为对他们而言去创建一个数据库或者说对数据库执行増、删、改、查操作已经不是什么难事,但是开发过程中经常发生的是乱码问题。这个...
  • 数据类型是指列、储存过程参数、表达式和局部变量的数据特征,它决定了数据的储存格式,代表了不同的信息类型。(简单的就是理解就是,我们有时候存储是需要数据的,有的数据是整数,有的数据是小数,还有可能是日期...
  • 查看、修改数据库的编码格式

    千次阅读 2019-04-05 15:08:10
    /*查看数据库编码格式*/ show variables like 'character_set_database'; /*查看的编码格式*/ show create table <表名>; /*创建数据库时指定数据库的字符集*/ create database <数据库名> ...
  • 数据库

    千次阅读 2021-04-19 14:08:09
    文章目录前言一、实验目的与要求:二、实验内容:1.1、创建名为fruitshop的数据库,并创建数据表fruits、customers(客户)、orderitems(订单详单)、suppliers(供货商)和orders(订单总),结构和约束条件...
  • 同时修改某一个数据库中所有的所有字段的编码格式
  • 一、需求:oracle数据库上有一个sys_org,要mysql数据库上创建一个sys_org_new作为该的备份。sys_org大概10000条记录。 二、Oracle同步到MySQL Oracle数据库使用PLSQL Developer连接 MySQL数据库使用...
  • 首先建立好数据库数据表,通过navicat数据库工具连接MySQL数据库,建立数据库database和数据表datatable,具体设计视图如下: 将网关与智能仪表的串口通讯线连接好,打开参数设置软件通过网线连接网关设置...
  • 数据库表结构

    千次阅读 2018-08-20 16:28:54
    当前研发工作中经常出现因数据库表数据库表字段格式不规则而影响开发进度的问题,后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有...
  • mysql数据库删除一行数据

    千次阅读 2021-01-19 10:09:55
    [MySQL]命令行工具和基本操作原文:[MySQL]命令行工具和基本操作一 MySQL命令行工具...当交互使用时,查询结果采用ASCII表格式。当采用非交互式(例如,用...文章杰克.陈2014-02-24608浏览量mysql 数据导入导出数据的m...
  • 怎么修改MYSQL数据库的编码格式

    千次阅读 2021-02-05 11:18:15
    1、怎么修改MYSQL数据库的编码格式在建网站时,有时需要将一个数据库里的数据导入到另一个数据库里,但往往会出现二个数据库的编码不同,造成网页乱码。解决方法就是修改数据库编码。下面介绍一下如何修改MYSQL...
  • 数据库文档格式

    千次阅读 2018-08-02 19:30:53
    一、概念结构设计(E-R图)   2用户数据 2.1 关键字(编号,关键字,关键字分组,... 视图包含:T_Site(网站),T_SearchResult(搜索结果),T_Keys(关键字)  包含字段:T_SearchResult.Nid,T_S...
  • 查看mysql数据库数据表编码信息

    千次阅读 2017-04-20 18:42:50
    通过MySQL的命令行即可以查看数据库数据表的编码信息。 1.查看数据库编码格式 show variables like 'character_set_database'; 2.查看数据表的编码格式 show create table ;
  • 要求:请安装Kingbase数据库软件,在数据库软件中创建一个自己名字的模式,该模式下创建学生关系数据表、课程、选课表。 插入一些数据,尝试查询、更新、删除 二、相关原理与知识 (完成实验所用到的相关原理...
  • SQL数据库字段数据类型说明

    千次阅读 2018-03-15 23:23:47
    SQL数据库常用字段数据类型说明这里先总结数据类型。MySQL中的数据类型大的方面来分,可以分为:日期和时间、数值,以及字符串。下面就分开来进行总结。日期和时间数据类型MySQL数据类型含义date3字节,日期,格式:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 622,654
精华内容 249,061
关键字:

在数据库怎么设置数据表格式