精华内容
下载资源
问答
  • mysql创建表允许为空
    千次阅读
    2021-01-18 19:38:01

    除非注明,文章均为易水寒原创,版权属于易水寒博客,转载请注明出处,谢谢。

    三、数据字段属性:

    1、unsigned 可以让空间增加一倍,如果不希望在字段中插入负值就使用此属性,另外只能用在数值型字段。

    2、zerofill 只能用在数值型字段,前导0(例如id int(5) zerofill,如果插入数据为11,会自动存储为00011),该字段自动应用unsigned。

    3、AUTO_INCREMENT 只能是整数,数据每增加一条就会自动增1,字段的值不允许重复。

    4、NULL和NOT NULL 控制字段插入数据是否可以为空值。

    5、default 缺省值。在某个表里,某个字段不插入值的话,就会启用缺省值。

    CREATE TABLE users(

    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

    name VARCHAR(30) NOT NULL DEFAULT '',

    height DOUBLE(10,2) NOT NULL DEFAULT 0.00,

    age INT NOT NULL DEFAULT 0,

    sex CHAR(4) NOT NULL DEFAULT '男'

    );

    四、创建索引:

    1、主键索引

    主要作用是确定数据库表里一条特定数据记录的位置。

    最好为每一张数据表定义为一个主键索引。

    一个表只能指定一个主键,主键的值不能为空。

    指定主键有2种方法:

    (1)

    CREATE TABLE users(

    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY

    );

    (2)

    CREATE TABLE users(

    id INT UNSIGNED NOT NULL AUTO_INCREMENT,

    PRIMARY KEY(id)

    );

    2、唯一索引

    unique

    它和主键索引一样,都可以防止创建重复的值,不同的是,每个表可以有多个唯一索引。

    3、常规索引

    最重要的技术,提高数据库性能,索引优化首先考虑常规索引。

    查询提高了,增删改减慢了。

    key和index是同义词,用哪个都可以。

    创建方法:

    单独创建常规索引:

    CREATE index 索引名称 on 表名(字段名,多个用逗号分隔);

    删除:

    drop index 索引名称 on 表名;

    创建表时创建常规索引:

    CREATE TABLE users(

    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

    uid INT NOT NULL,

    index 索引名称(uid)

    );

    4、全文索引

    fulltext类型索引,只能在MyISAM表类型上使用,只有在varchar,char,text等文本字符串上使用,也可以多个数据列使用。

    CREATE TABLE books(

    id int,

    bookname varchar(30),

    price double,

    detail text not null,

    fulltext(detail,bookname),

    index ind(price),

    primary key(id)

    );

    正常查询:select * from books where bookname like '%php%';

    全文索引查询:select bookname,price from books where MATCH(detail) AGAINST('php');

    以上两种查询来比,全文索引查询效率比较高。

    更多相关内容
  • 细说 MySQL 创建表的三种方法

    千次阅读 多人点赞 2021-08-15 21:38:02
    MySQL 则实现了三种创建表的方法,支持自定义结构或者通过复制已有的结构(CREATE TABLE ... LIKE 以及 CREATE TABLE ... SELECT)来创建,本文给大家分别介绍一下这些方法的使用和注意事项。

    大家好!我是只谈技术不剪发的 Tony 老师。

    SQL 标准使用 CREATE TABLE 语句创建数据表;MySQL 则实现了三种创建表的方法,支持自定义表结构或者通过复制已有的表结构来创建新表,本文给大家分别介绍一下这些方法的使用和注意事项。

    如果你觉得文章有用,欢迎评论📝、点赞👍、推荐🎁

    CREATE TABLE

    CREATE TABLE 语句的基本语法如下:

    CREATE TABLE [IF NOT EXISTS] table_name
    (
      column1 data_type column_constraint,
      column2 data_type,
      ...,
      table_constraint
    );
    

    使用该语句时,我们需要手动定义表的结构。以上包含的内容如下:

    • IF NOT EXISTS 表示当该表不存在时创建表,当表已经存在时不执行该语句。
    • table_name 指定了表的名称。
    • 括号内是字段的定义;columnN 是字段的名称,data_type 是它的数据类型;column_constraint 是可选的字段约束;多个字段使用逗号进行分隔。
    • table_constraint 是可选的表级约束。

    其中,常见的约束包括主键、外键、唯一、非空、检查约束以及默认值。

    举例来说,以下语句用于创建一个新表 department:

    CREATE TABLE department
        ( dept_id    INTEGER NOT NULL PRIMARY KEY
        , dept_name  VARCHAR(50) NOT NULL
        ) ;
    

    部门表 department 包含两个字段,部门编号(dept_id)是一个整数类型(INTEGER),不可以为空(NOT NULL),同时它还是这个表的主键(PRIMARY KEY)。部门名称(dept_name)是一个可变长度的字符串,最长 50 个字符,不允许为空。

    如果我们想要创建一个自定义名称的主键约束,可以使用表级约束:

    CREATE TABLE department
        ( dept_id    INTEGER NOT NULL
        , dept_name  VARCHAR(50) NOT NULL
        , CONSTRAINT pk_department PRIMARY KEY (dept_id)
        ) ;
    

    表级约束在所有字段之后定义,其中 pk_dept 是自定义的主键名称。

    对于数字类型的主键字段,我们可以通过自增长列(auto increment)自动生成一个唯一的数字。例如:

    CREATE TABLE department
        ( dept_id    INTEGER AUTO_INCREMENT PRIMARY KEY
        , dept_name  VARCHAR(50) NOT NULL
        ) ;
    

    此时,我们在插入数据时不再需要为 dept_id 字段提供数据,MySQL 默认会产生一个从 1 开始,每次递增 1 的数字序列。

    然后我们再创建两个表:

    CREATE TABLE job
        ( job_id         INTEGER NOT NULL PRIMARY KEY
        , job_title      VARCHAR(50) NOT NULL
        ) ;
        
    CREATE TABLE employee
        ( emp_id    INTEGER NOT NULL PRIMARY KEY
        , emp_name  VARCHAR(50) NOT NULL
        , sex       VARCHAR(10) NOT NULL
        , dept_id   INTEGER NOT NULL
        , manager   INTEGER
        , hire_date DATE NOT NULL
        , job_id    INTEGER NOT NULL
        , salary    NUMERIC(8,2) NOT NULL
        , bonus     NUMERIC(8,2)
        , email     VARCHAR(100) NOT NULL
        , CONSTRAINT ck_emp_sex CHECK (sex IN ('男', '女'))
        , CONSTRAINT ck_emp_salary CHECK (salary > 0)
        , CONSTRAINT uk_emp_email UNIQUE (email)
        , CONSTRAINT fk_emp_dept FOREIGN KEY (dept_id) REFERENCES department(dept_id)
        , CONSTRAINT fk_emp_job FOREIGN KEY (job_id) REFERENCES job(job_id)
        , CONSTRAINT fk_emp_manager FOREIGN KEY (manager) REFERENCES employee(emp_id)
        ) ;
    

    job 表用于存储职位信息,和部门表相似,比较简单。

    employee 表用于存储员工信息,包含的字段和约束如下:

    • 员工编号(emp_id)是一个整数类型(INTEGER),不可以为空(NOT NULL),同时它还是这个表的主键(PRIMARY KEY)。
    • 员工姓名(emp_name)是一个可变长度的字符串,最长 50 个字符,不允许为空。
    • 性别(sex)是一个可变长度的字符串,最长 10 个字符,不允许为空;另外,我们通过表级约束 ck_emp_sex 限制了性别的取值只能为“男”或者“女”。
    • 部门编号(dept_id)代表了员工所在的部门,因此通过外键约束 fk_emp_dept 引用了部门表的主键字段。
    • 经理编号(manager)代表了员工的直接上级,可能为空。外键约束 fk_emp_manager 表示经理也属于员工。
    • 入职日期(hire_date)是一个 DATE 类型的字段,不能为空。
    • 职位编号(job_id)代表了员工的职位,因此通过外键 fk_emp_job 引用了职位表的主键字段。
    • 月薪(salary)是一个支持两位小数的数字,不能为空。检查约束 ck_emp_salary 要求月薪必须大于零。
    • 奖金(bonus)是一个可选的数字字段。
    • 电子邮箱(email)是一个可变长度的字符串,最长100 个字符,不允许为空。检查约束 uk_emp_email 要求每个员工的电子邮箱都不相同。

    CREATE TABLE … LIKE

    除了手动定义表的结构之外,MySQL 还提供了复制已有表结构的方法:

    CREATE TABLE [IF NOT EXISTS] table_name
        { LIKE old_tbl_name | (LIKE old_tbl_name) }
    

    MySQL 的 LIKE 语法只复制表结构,包括字段的属性和索引,但是不复制数据。例如:

    CREATE TABLE emp_copy
      LIKE employee;
    

    以上语句基于 employee 表的结构复制生成一个新的表 emp_copy。

    mysql> show create table emp_copy \G
    *************************** 1. row ***************************
           Table: emp_copy
    Create Table: CREATE TABLE `emp_copy` (
      `emp_id` int NOT NULL,
      `emp_name` varchar(50) NOT NULL,
      `sex` varchar(10) NOT NULL,
      `dept_id` int NOT NULL,
      `manager` int DEFAULT NULL,
      `hire_date` date NOT NULL,
      `job_id` int NOT NULL,
      `salary` decimal(8,2) NOT NULL,
      `bonus` decimal(8,2) DEFAULT NULL,
      `email` varchar(100) NOT NULL,
      PRIMARY KEY (`emp_id`),
      UNIQUE KEY `uk_emp_email` (`email`),
      KEY `fk_emp_dept` (`dept_id`),
      KEY `fk_emp_job` (`job_id`),
      KEY `fk_emp_manager` (`manager`),
      CONSTRAINT `emp_copy_chk_1` CHECK ((`salary` > 0)),
      CONSTRAINT `emp_copy_chk_2` CHECK ((`sex` in (_utf8mb4'男',_utf8mb4'女')))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    1 row in set (0.01 sec)
    

    对于 CREATE TABLE … LIKE 命令,目标表会保留原始表中的主键、唯一约束、非空约束、表达式默认值、检查约束(自动生成约束名),同时还会保留原始表中的计算列定义。

    CREATE TABLE … LIKE 命令不会保留外键约束(但是会保留外键索引),以及任何 DATA DIRECTORY 或者 INDEX DIRECTORY 表属性选项。

    如果原始表是一个 TEMPORARY 表,CREATE TABLE … LIKE 不会保留 TEMPORARY 关键字。如果想要创建一个临时表,可以使用 CREATE TEMPORARY TABLE … LIKE。

    使用 mysql 表空间、InnoDB 系统表空间(innodb_system)或者通用表空间创建的表包含一个 TABLESPACE 属性,表示该表所在的表空间。目前,无论 innodb_file_per_table 设置为什么参数,CREATE TABLE … LIKE 都会保留 TABLESPACE 属性。为了避免复制新表时使用原始表的 TABLESPACE 属性,可以使用下面介绍的第三种方法。例如:

    CREATE TABLE new_tbl SELECT * FROM orig_tbl LIMIT 0;
    

    以上语句会基于 orig_tbl 创建一个新的空表 new_tbl,具体参考下一节内容。

    CREATE TABLE … LIKE 使用原始表的所有 ENGINE_ATTRIBUTE 和 SECONDARY_ENGINE_ATTRIBUTE 值创建目标表。

    另外,LIKE 只能基于表进行复制,而不能复制视图。

    CREATE TABLE … SELECT

    在 MySQL 中复制表结构的另一种方法就是利用查询语句的结果定义字段和复制的数据:

    CREATE TABLE table_name
      [AS] SELECT ...;
    

    其中的 SELECT 语句定义了新表的结构和数据。以下示例基于查询的结果创建了一个新表:emp_devp,表中包含了研发部的所有员工。

    CREATE TABLE emp_devp
        AS
    SELECT e.*
      FROM employee e
      JOIN department d
        ON (d.dept_id = e.dept_id AND d.dept_name = '研发部');
    

    对于这种语法,MySQL 实际上是在已有目标表中增加新的字段。例如:

    CREATE TABLE t1(col1 INTEGER, col2 INTEGER);
    INSERT INTO t1(col1, col2) VALUES(1, 1), (2, 4);
    
    CREATE TABLE t2(id INTEGER AUTO_INCREMENT PRIMARY KEY)
           ENGINE=InnoDB
        AS SELECT col1, col2 FROM t1;
    

    我们首先为 t2 指定了一个自增 id,然后将 t1 的查询结果添加到该字段的后面。其中,ENGINE 选项属于 CREATE TABLE 语句,因此需要位于 SELECT 语句之前。

    查询 t2 可以看到以上语句不仅复制了表结构,同时还复制了 t1 中的数据:

    TABLE t2;
    
    +----+------+------+
    | id | col1 | col2 |
    +----+------+------+
    |  1 |    1 |    1 |
    |  2 |    2 |    4 |
    +----+------+------+
    2 rows in set (0.00 sec)
    

    如果只想复制结构,不需要复制数据,可以在查询语句中增加 LIMIT 0 或者 WHERE 1=0 条件。

    如果在 SELECT 语句前面增加 IGNORE 或者 REPLACE 关键字,可以处理复制数据时导致唯一键冲突的数据行。对于 IGNORE,源数据中和目标表重复的数据行就会被丢弃;对于 REPLACE,使用新数据行替换目标表中的已有数据行。如果没有指定任何选项,唯一键冲突将会返回错误。

    CREATE TABLE … SELECT 命令不会自动创建任何索引,这样可以使得该语句尽量灵活。如果想要创建索引,可以在 SELECT 语句之前指定。例如:

    CREATE TABLE t3(id INTEGER PRIMARY KEY)
    AS SELECT col1 as id, col2 FROM t1;
    

    CREATE TABLE … SELECT 命令不会保留计算列的定义,也不会保留默认值定义。同时某些数据类型可能产生转换。例如,AUTO_INCREMENT 属性不会被保留,VARCHAR 类型被转换为 CHAR 类型。保留的属性包括 NULL(NOT NULL)以及 CHARACTER SET、COLLATION、COMMENT 和 DEFAULT 子句。

    使用 CREATE TABLE … SELECT 命令创建表时,需要为查询语句中的函数和表达式指定一个别名,否则该命令可能失败或者创建意料之外的字段名:

    CREATE TABLE artists_and_works
    SELECT artist.name, COUNT(work.artist_id) AS number_of_works
    FROM artist LEFT JOIN work ON artist.id = work.artist_id
    GROUP BY artist.id;
    

    对于 CREATE TABLE … SELECT 命令,如果我们指定了 IF NOT EXISTS 并且目标表已经存在,不会将数据复制到目标表,同时该语句不会写入日志文件。

    CREATE TABLE … SELECT 命令不支持 FOR UPDATE 选项。

    CREATE TABLE … SELECT 命令只会应用字段的 ENGINE_ATTRIBUTE 和 SECONDARY_ENGINE_ATTRIBUTE 属性。表和索引的 ENGINE_ATTRIBUTE 和 SECONDARY_ENGINE_ATTRIBUTE 属性不会被应用,除非为目标表明确指定这些选项。

    总结

    本文通过一些案例介绍了 MySQL 中三种创建表的方法和注意事项。

    如果你想要了解更多 MySQL 入门知识,可以参考这篇文章

    展开全文
  • MySQL 创建数据

    千次阅读 2021-02-08 03:31:58
    创建表建议:创建数据之前,应该首先使用【use database_name】指定是在哪个数据库中进行语法:create table [if not exists] 表名 (字段名1 数据类型 [列级别约束条件] [默认值],字段名2 数据类型 [列级别约束...

    创建表

    建议:创建数据表之前,应该首先使用【use database_name】指定是在哪个数据库中进行

    语法:

    create table [if not exists] 表名 (

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

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

    ...

    [表级别约束条件]

    );

    -- 表名称不区分大小写;不能使用 SQL 语言中的关键字,比如:drop、alter、insert等

    e.g.:

    create table if not exists tb_emp1(

    id int(11),

    name varchar(25),

    dept_id int(11),

    salary float

    );

    -- show tables 查看

    约束

    主键约束

    主键约束:Primary Key Constraint;主键列数据唯一,非空;唯一标志,定义表关系,加快查询速度

    类型:

    单字段主键

    多字段联合主键

    单字段主键:

    语法:

    -- 在定义列的同时指定主键

    -- 字段名 数据类型 primary key [默认值]

    create table if not exists tb_emp2(

    id int(11) **primary key**,

    name varchar(25),

    dept_id int(11),

    salary float

    );

    -- 在定义完所有列后指定主键

    -- [constraint ] primary key [字段名]

    create table if not exists tb_emp3(

    id int(11),

    name varchar(25),

    dept_id int(11),

    salary float,

    **primary key(id)**

    );

    多字段联合主键

    语法:

    -- primary key [字段1, 字段2, ... , 字段n]

    create table tb_emp4(

    name varchar(25),

    dept_id int(11),

    salary float,

    primary key(name,dept_id)

    )

    外键约束

    外键约束:在表的数据之间建立连接关系,可以一列或者多列;对应的是参照完整性;定义了外键后,不允许删除在另一个表中鞠永关联关系的行

    作用:保证数据引用的一致性、完整性;

    语法:

    -- [constraint ] foreign key 字段名1 [,字段名2,...]

    -- references 主键列1 [, 主键列2, ...]

    create table tb_dept1(

    id int(11) primary key,

    name varchar(22) not null,

    location varchar(50)

    );

    create table tb_emp5(

    id int(11) primary key,

    name varchar(25),

    dept_id int(11),

    salary float,

    constraint fk_emp_dept1 foreign key(dept_id) references tb_dept1(id)

    );

    -- 提示:

    -- 子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配

    非空约束 not null

    唯一约束

    唯一约束:列的值唯一,允许为空,但是空值也只能有一个

    作用:确保一列或者多列不出现重复值

    语法:

    -- 1. 在定义完列之后直接指定唯一约束:

    -- 字段名 数据类型 unique

    create table tb_dept2(

    id int(11) primary key,

    name varchar(22) unique,

    location varchar(50)

    );

    -- 2. 在定义完所有列之后指定唯一约束

    -- [constraint ] unique()

    -- e.g.

    create table tb_dept3(

    id int(11) primary key,

    name varchar(22),

    location varchar(50),

    constraint cons_dept3_name unique(name)

    );

    默认约束 default

    自增 auto_increment

    一个表只能有一个字段使用 auto_increment 约束,且改字段必须为主键的一部分,可以是任何整数类型

    语法

    -- 字段名 数据类型 auto_increment

    create table tb_emp8(

    id int(11) primary key auto_increment,

    name varchar(25) not null,

    dept_id int(11),

    salary float

    );

    展开全文
  • 先看一下最简单的例子,在test中,添加一个字段,字段名birth,类型date类型。mysql> alter table test add column birth date;Query OK, 0 rows affected (0.36 sec)Records: 0 Duplicates: 0 Warnings: 0...

    先看一下最简单的例子,在test中,添加一个字段,字段名为birth,类型为date类型。

    mysql> alter table test add column birth date;

    Query OK, 0 rows affected (0.36 sec)

    Records: 0  Duplicates: 0  Warnings: 0

    查询一下数据,看看结果:

    mysql> select * from test;

    +------+--------+----------------------------------+------------+-------+

    | t_id | t_name | t_password                       | t_birth    | birth |

    +------+--------+----------------------------------+------------+-------+

    |    1 | name1  | 12345678901234567890123456789012 | NULL       | NULL  |

    |    2 | name2  | 12345678901234567890123456789012 | 2013-01-01 | NULL  |

    +------+--------+----------------------------------+------------+-------+

    2 rows in set (0.00 sec)

    从上面结果可以看出,插入的birth字段,默认值为空。我们再来试一下,添加一个birth1字段,设置它不允许为空。

    mysql> alter table test add column birth1 date not null;

    Query OK, 0 rows affected (0.16 sec)

    Records: 0  Duplicates: 0  Warnings: 0

    居然执行成功了!?意外了!我原来以为,这个语句不会成功的,因为我没有给他指定一个默认值。我们来看看数据:

    mysql> select * from test;

    +------+--------+----------------------------------+------------+-------+------------+

    | t_id | t_name | t_password                       | t_birth    | birth | birth1     |

    +------+--------+----------------------------------+------------+-------+------------+

    |    1 | name1  | 12345678901234567890123456789012 | NULL       | NULL  | 0000-00-00 |

    |    2 | name2  | 12345678901234567890123456789012 | 2013-01-01 | NULL  | 0000-00-00 |

    +------+--------+----------------------------------+------------+-------+------------+

    2 rows in set (0.00 sec)

    哦,明白了,系统自动将date类型的值,设置了一个默认值:0000-00-00。下面我来直接指定一个默认值看看:

    mysql> alter table test add column birth2 date default '2013-1-1';

    Query OK, 0 rows affected (0.28 sec)

    Records: 0  Duplicates: 0  Warnings: 0

    mysql> select * from test;

    +------+--------+----------------------------------+------------+-------+------------+------------+

    | t_id | t_name | t_password                       | t_birth    | birth | birth1     | birth2     |

    展开全文
  • 经常用mysql的人可能会遇到下面几种情况:1、我字段类型是not null,什么我可以插入空值2、什么not null的效率比null高3、判断字段不为空的时候,到底要用select * from table where column <> ”还是要用...
  • 创建表的时候,字段尽量不要NULL 解决办法就是设置字段NOT NULL,并设置字段的默认值。字段尽量不要NULL的原因如下: a、NULL需要占用额外的空间存储; b、进行比较的时候会更复杂,还会导致你select ...
  • mysql怎么创建一个

    千次阅读 2021-01-18 18:27:17
    在此数据库中建立数据库表2.1 先建立表结构(可以理解为表的列名,也就是字段名)在实际生产过程中,表结构是需要经过精心设计的。通用的语法格式为:1 CREATE TABLE table_name (column_name column_type);举例如下:...
  • mysql创建学生信息

    千次阅读 2021-01-20 01:23:05
    mysql中,如何创建一个,并加一条数据?在一个数据库中创建一个学生“student”,要CSS布局HTML小编今天和大家分享使用查询语句,包括以下字如果想在数据库中创建一个学生的话。也不算复杂吧,如果是SQL SERVER,...
  • 自己的MySQL阅读笔记,持续更新,直到看书结束。数据库技术可以有效帮助一个组织或者企业科学、有效的管理数据,也是现在很多企业招聘数据分析师的必备要求之一。大家如果看过MySQL的书,也可以看我的知识导图做一个...
  • 1.主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地识别中的一条记录,可以结合外键来定义不同数据之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系。 2...
  • mysql 查询结果创建表

    千次阅读 2021-01-18 19:46:39
    用 SELECT 的结果创建表关系数据库的一个重要概念是,任何数据都表示行和列组成的,而每条 SELECT 语句的结果也都是一个行和列组成的。在许多情况下,来自 SELECT 的“”仅是一个随着您的工作在显示屏上滚动...
  • mysql创建内存的方法

    千次阅读 2021-01-18 18:30:24
    如何创建内存创建内存非常的简单,只需注明 ENGINE= MEMORY 即可:复制代码 代码如下:CREATE TABLE `tablename` ( `columnName` varchar(256) NOT NUL) ENGINE=MEMORY DEFAULT CHARSET=latin1 MAX_ROWS=...
  • MySQL创建表结构

    千次阅读 2020-07-31 08:47:16
    在Management Studio中创建、编辑及删除数据; 使用T-SQL创建、编辑及删除数据; 使用T-SQL语句创建及管理数据结构T-SQL语句创建表结构T-SQL语句修改结构操作提示 T-SQL语句创建表结构 依据数据的结构...
  • MySQL使用DDL语句创建表

    千次阅读 2019-06-30 21:35:57
    使用DDL语句创建表 知识要点 CREATE TABLE语句 列的数据类型 添加数据类型选项 根据已有的创建 列选项 选项 约束 对表名和列名使用反引号 CREATE TABLE语句 对于一个有列和行,对于列有标题和数据...
  • MySQL创建表和约束条件(四)

    千次阅读 多人点赞 2019-11-15 14:09:16
    古语有云: 万恶淫为首,百善孝先。 我们后辈当自勉。 上一章简单介绍了 MySQL的数据类型(三),如果没有看过,请观看上一章 一. 创建表 上一章时,我们学习了 MySQL的数据类型, 就像Java 知道了 int,string 之后...
  • Mysql修改字段默认

    千次阅读 2021-04-19 10:54:16
    Mysql修改字段默认 DML ALTER TABLE test_table_define MODIFY COLUMN type_name tinyint(1) DEFAULT NULL COMMENT 'Not Null Alter Null Test'; test_table_define:表名,type_name 字段名。 表创建结构 ...
  • MySQL中建时可(NULL)和非空(NOT NULL)的用法详解 MySQL不推荐列默认值设置null到底是什么 参考资料: https://blog.csdn.net/qq_30549099/article/details/107395521 ...必须把字段定义NOT NULL并且...
  • Java代码中实现创建MySQL数据库

    千次阅读 2022-01-07 16:14:37
    Java代码中实现创建数据库 近期闲来无事,就想起来使用代码去实现创建数据库,废话不多说,直接上代码 package com.ruoyi.system.utils; import com.ruoyi.common.core.domain.entity.SysMeter; import ...
  • 1.检查该中已有行的datetime字段是否有...`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 设置默认值CURRENT_TIMESTAMP 4.最后在将该sql文件导入数据库中就有非空有默认值 ...
  • MySQL新手入门之创建数据库和

    千次阅读 2021-03-12 09:17:35
    文章目录SQL什么是SQLSQL分类创建删除数据库创建表和删除表创建表和删除数据类型整型浮点定点数日期和时间类型字符枚举结构操作查询修改删除数据完整性建表以后的管理约束主键约束非空约束唯一约束外键...
  • mysql TIMESTAMP 不能NULL

    千次阅读 2021-01-19 08:46:52
    一般建表时候,创建时间用datetime,更新时间用timestamp。这是非常重要的。我测试了一下,如果你的中有两个timestamp字段,只要你更新任何非timestamp字段的值,则第一个timestamp列会更新成当前时间,而第二人...
  • mysql unique index 允许为null

    千次阅读 2020-11-07 00:56:11
    其中phone字段允许null,默认null。 操作: 使用sql执行脚本执行添加索引sql。执行时报错。提示有创建唯一约束字段存在重复值。 排查问题: SELECT COUNT(DISTINCT `phone`, `shop_code`) from customer; 1
  • mySQL创建数据

    千次阅读 2020-01-14 17:40:31
    创建数据库 1.创建表的基本形式 2.使用主键约束 3.使用外键约束 4.使用非空约束 5.使用唯一性约束 5.1在定义完列之后直接指定唯一约束,语法规则如下: 5.2在定义完所有列之后指定唯一约束,语法规则如下: ...
  • Mysql创建用户

    千次阅读 2021-06-30 19:57:36
    1.1、创建用户 create user 用户名@‘IP地址’ IDENTIFIED BY ‘密码’;注意:'IP地址’可以设置localhost(代表本机) 或者 ‘%’(代表允许所有IP地址登录)示例:create user lotus @‘localhost’ identified by ...
  • ·数据库创建及查询 文章目录学习笔记任务过程第一步:分析需求第二步:新建数据库第三步:新建1.Grade2.Student3.subject第三步:插入数据1.Grade2.Student3.subject第四步:查询测试1.查询学号...
  • mysql命令大全1 创建表

    千次阅读 2019-09-19 20:01:27
    mysql命令大全 1. 创建数据库 登录mysql: 格式:mysql -h localhost -u root -p -h 后面是ip地址,默认localhost=127.0.0.1, 默认可省略, -u 后面的root用户,-p后面回车后密码。 mysql -u root -p 查看...
  • 执行之后,在tb_emp中创建了一个name字段,其插入值不能为空(not null)。 4、唯一性约束 语法:create table tb_dept ( id int(11) primary key, name varchar(22) unique, location varchar(50) ); 字段名 数据...
  • 创建MySql数据的时候,可以字段设置允许空值NULL和不允许空值NOT NULL, 语句如下:  create table t_tablename(  pk_id varchar(10) primary key NOT NULL ,  user_name varchar(20) NOT NULL, //不...
  • Mysql允许Null意思

    千次阅读 2021-02-05 05:35:47
    当您在MySQL创建表时,它允许您指定是否允许您的字段NULL。如果指定“Allow Null”,则可以在这些字段中创建具有NULL值的记录。在某些情况下,这可能对您有用。例如,“是/否”字段可能是布尔值,但如果用户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,196
精华内容 46,478
关键字:

mysql创建表允许为空

mysql 订阅