数据引擎 创建表完整语法,字段类型,约束条件

数据引擎 创建表完整语法,字段类型,约束条件

回顾:
    1、设置密码与修改密码
    mysqladmin -uroot -p password设置的密码
    mysqladmin -uroot -p原密码 password新密码

    2、破解密码
        - 1、先关掉服务,杀死进程
        - 2、跳过权限认证启动服务端
        - 3、以游客的身份登录即可

    3、制作服务
        - 1、mysql --install
        - 2、net start mysql

    4、语法:
        库的操作:
            增:
                create database 库名;
                create database 库名 charset='utf8';

            查:
                show databases;
                show create database 库名

            改:
                alter database 库名 charset='gbk';

            删:
                drop database 库名;

        表的操作:
            - 注意:操作表之前,需要先切换到指定的库中
            语法:use 库名

            增:
                create table 表名(字段名 字段类型);

            查:
                show tables;
                desc 表名;

            改:
                alter table 表名 modify 字段名 字段类型(16);

            删:
                drop table 表名;

        记录的操作:
            create table user_info(id int, name char(16), age int);

            增:
                insert into 表名 values(id字段值int, name字段值的字符串, age字段的值int);
                insert into user_info values(1, 'yafeng', 18);

            查:
                select * from 表名;
                select * from user_info;

                select name from user_info;

                select * from 表名 where 条件;(条件成立,则返回条件成立的记录)

                select * from user_info where id=3;

            改:
                update 表名 set 修改的字段=字段值 where 条件判断;
                update user_info set name='dsb' where id>1;

            删:
                # delete 可回滚
                delete from 表名; #清除表中所有记录

                delete from user_info;

                delete from 表名 条件判断; #删除条件成立的记录

                delete from user_info where id>1;

                #truncate : 不可回滚

新知识:
    1、存储引擎
        - 存储引擎是根据不同的机制处理不同的数据
        - 查看mysql中所有的引擎
            - show engines;

        - myisam:5.5以前老版本使用的存储引擎
        - blackhole:数据进入就会消失
        - innodb: 默认使用存储引擎
            - 支持事务
            - 行锁
            - 外键

        - memory:通过数据存在,断电丢失
            create table t1(id int)engine=innodb;
            cerete table t2(id int)engine=myisam;
            cerete table t3(id int)engine=blackhole;
            cerete table t4(id int)engine=memory;

        =====*****可提前学习 Redis面试问的比较多*****=====

        - 插入数据验证引擎的作用:
            insert into t1 values(1);
            insert into t2 values(2);
            insert into t3 values(3);
            insert into t4 values(4);

    2、创建表完整的语法
        # 约束条件:可有可无
        # 宽度;限制某些数据类型的存储大小
        create table 表名(
            字段名1 字段类型(宽度) 约束条件,
            字段名2 字段类型(宽度) 约束条件
        );

        # 初始约束条件:not null
        create table teacher (
            id int not null,  #约束插入记录时ID不能为空
            name varchar(16),
            age int
        );

        insert into teacher values(1, 'yafeng', 18);

        注意:
            1、创建表的字段名不能重复
            create table test(
                id int,
                id int
            );

            2、最后一个字段不能在末尾加 , 号
            create table test(
                id int,
                age int,
            );

            3、字段名必须要有字段类型与宽度
            create table test(
                id int,
                name char
            );

    3、字段类型
        1)确定表结构
        2)字段与字段类型

        - 整型:
            - tinyint: 默认范围 -128, 127
                create table t5(
                    id tinyint,
                    name varchar(16)
                );
                insert into t5 values(-128, 'yafeng'), (127, 'reba');
                insert into t5 values(-129, 'tank');
                insert into t5 values(128, 'jason');
                insert into t5 values(12, 'sean');

            - int 默认范围是(-2147483648, 2147483647)

                应用场景:id 号,年龄...

                create table t6(
                    id int
                );

                # int 默认宽度11---->默认展示宽度
                insert into t6 values(-2147483649);
                insert into t6 values(2147483648);
                insert into t6 values(100);

                create table t7(
                    id int(3)
                );

                # 若插入超过设定宽度,则正常显示
                insert into t7 values(123456);

                # 若插入不足够4位,则以空格补全
                insert into t7 values(1);

            - bigint

        - 浮点型
            应用场景:工资、身高、体重...

            - float
            - double
            - decimal

            # 范围255是最大长度(包括.小数), 30代表是小数的位数
            create table t8(x float(255, 30));
            create table t9(x double(255, 30));
            create table t10(x decimal(65, 30));

            # 插入数据
            # 三种浮点型:区别在于精度不一样
            insert into t8 values(1.23456789666666666);
            insert into t9 values(1.23456789666666666);
            insert into t10 values(1.23456789666666666);

        - 字符类型
            - char(16):定长字符

                char :手机号、身份证号、银行卡号等...
                - 插入16个字符:

                create table t11(
                    id int,
                    name char(4)  #这里的4指的是四个字符
                );

                insert into t11 values(1, 'reba');

                # utf8 中文3个bytes  gbk 中文2个bytes
                insert into t11 values(2, '亚峰牛皮');
                insert into t11 values(3, '亚峰真牛皮');

                优点:
                    存取速度快

                缺点:
                    浪费空间(字符长度不够的情况下,会以空格作为字符填入,会浪费内存占用资源)

                    比如:insert into t11 values(1, 't')   # 其实是t + 三个空格

            - varchar(16): 不定长字符
                - 存几个字符:就是几个字符的大小,每个字符前都要+ 1个bytes(用来去记录后面存放的到底是几个字符)

                优点:
                    节省空间

                create table t12(id int, name varchar(4));
                insert into t12 values(1, '亚峰牛皮');  # 1bytes + 亚峰牛皮
                insert into t12 values(2, 'reba');   # 1bytes + reba
                insert into t12 values(3, 'sean');   # 1bytes + sean

                insert into t12 values(4, 't');   # 1bytes + t

        日期类型
            - data:2019-12-11
            - datatime:2019-12-11 16:16:16
            - time: 16:16:16
            - year: 2019
            - timestamp: 时间戳

            create table student(
                id int,
                name varchar(4),
                birth date,
                register datetime,
                work_time year,
                t_time time,
                update_time timestamp
            );

            insert into student values(1, '张全蛋', '2019-11-11', '2019-11-11 11:11:11','2019', '11:11:11', null);

            注意:python插入时间数据时,的转成str类型

        - 枚举与集合
            - enum(enumerate): 可以 多选一
                create table t13(
                    id int,
                    name varchar(6),
                    gender enum('male', 'female', 'others')
                );

                #insert into 表名(字段名) values(字段名对应的值);
                insert into t13(id, name, gender) values(1, 'yafeng', 'male');

                # 严格模式下,选择枚举以外的值会报错
                insert into t13(id, name, gender) values(2, 'gd', '人yao');

            - set: 可 多选一 或 多选多
                create table t14(
                    id int,
                    name varchar(6),
                    gender enum('male', 'female', 'others'),
                    hobbies set('read', 'sing', 'jump', 'rap', '会所嫩模')
                );

                # 多选一
                insert into t14 values(1, 'tank', 'male', '会所嫩模');

                # 多选多
                insert into t14 values(2, 'yafeng', 'male', 'read,sing,jump,rap');  #注意:多选多中都在一个''下用,且逗号后不可有空格

                # 注意:多选多的顺序可不一,因为它最后都会以一种排序方式排列

    4、约束条件

        - not null + unique:
            create table user1(
                id int not null,
                name varchar(6)
            );

            insert into user1(id, name) values(null, 'tank');
            insert into user1(id, name) values(1, 'tank');

        - unique 将某个字段设置为唯一的值
            # not null + unique 相当于主键
            create table user2(
                id int not null unique,
                name varchar(4)
            );

            insert into user2(id, name) values(1, 'tank'), (2, 'sean');

        - primary key + auto_increment: 主键 + 自增

            - primary  key ---->  not null + unique
                - pk就是标中的索引:可以通过索引快速查找某些数据
                    - 提高效率

                # 将ID设为主键,非空且唯一
                create table user3(
                    id int primary key,
                    name varchar(4)
                );

                insert into user3(id, name) values(1, 'tank');
                insert into user3(id, name) values(2, 'tank');

            - auto_increment:
                #将ID设置为自增
                create table user4(
                    id int primary key auto_increment,
                    name varchar(4)
                );

                #自增默认从0开始
                insert into user4(name) values('tank');
                insert into user4(name) values('sean');
                insert into user4(name) values('egon');
                insert into user4(name) values('dada');

                #若想自增从指定值开始,可插入第一条数据时先指定ID值;
                insert into user4(id, name) values(10, 'tank');
                insert into user4(name) values('sean');   #11
                insert into user4(name) values('egon');   #12
                insert into user4(name) values('dada');   #13

            - unsigned
                - 无符号(值不可为负,只能大于等于0)
                    create table user5(
                        id int unsigned
                    );

                    insert into user5 values(-100);   #报错的写法
                    insert into user5 values(0);
                    insert into user5 values(100);

                - 有符号
                    create table user6(
                        id int
                    );

                    insert into user6 values(-100);

            - zerofill
                使用0填充空格
                create table user7(
                    id int zerofill
                );

                insert into user7 values(100);

            - 删除记录
                create table user8(
                    id int primary key auto_increment,
                    name varchar(4)
                );

                insert into user8(name) values('tank');
                insert into user8(name) values('dada'), ('egon');

                - delete
                    # 清空user8表中的所有记录
                    delete from user8;

                - truncate:
                    # 清空user8表中的所有记录,并且ID重置为0
                    truncate table user8;

原文地址:https://www.cnblogs.com/yafeng666/p/12024306.html

时间: 2024-10-13 09:12:19

数据引擎 创建表完整语法,字段类型,约束条件的相关文章

引擎,创建完整表,数据库模式,数据库类型,约束条件

引擎(****) 前提:引擎是提供给表使用的,不是数据库 mysql> show engines;#展示所有的引擎 #重点: #innodb(默认):支持事务,行级锁,外键 #myisam:查询效率优于innodb,当不需要支持事物,行级锁,外键,可以通过设置myisam来优化数据库 mysql> use db1; mysql> create table t1(id int)engine=innodb; mysql> create table t2(id int)engine=my

MySQL 存储引擎 字段类型 约束条件

? 1.存储引擎 ? - 存储引擎是用于根据不同的机制处理不同的数据. ? - 查看mysql中所有引擎: ? - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackhole: 类似于队列中的数据,存进去消失 - innodb: 默认使用存储引擎 - 支持事务 - 行锁 - 外键 - memory: 通电数据存在,断电丢失 create table t1(id int)engine=innodb; create table t2(id int)eng

Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件) 【转】

1.增加字段:    alter table   tablename    add   new_field_id   type   not null default '0';     例:     alter table mmanapp_mmanmedia add appid_id integer not null default 372; 增加主键: alter table  tabelname   add   new_field_id   type    default 0 not null

MySQL-存储引擎-创建表-字段数据类型-严格模式-字段约束-键-02

目录 扩展点 查看服务端字符.IP.端口配置 取消本次错误输入 例外情况 database 数据库操作 table 数据表操作 查看MySQL存储引擎 常见几个存储引擎 InnoDB MyISAM MEMORY BLACKHOLE 引擎对应的本地化文件 案例 基本操作 创建表的完整语法 表记录基础操作 严格模式补充 查看数据库配置中变量名包含mode的配置参数 模糊匹配 基本数据类型 数据范围 整型 TINYINT SMALLINT MEDIUMINT INT BIGINT 应用场景 结合字段验

MYSQL表中设置字段类型为TIMESTAMP时的注意事项

在MYSQL中,TIMESTAMP类型是用来表示日期的,但是和DATETIME不同,不同点就不再这里说明了. 当我们在使用TIMESTAMP类型设置表中的字段时,我们应该要注意一点,首先我们在表中新增一个类型为TIMESTAMP的字段: 如上图所示,系统为类型为TIMESTAMP的tm字段自动创建了默认值CURRENT_TIMESTAMP(系统日期),下面我们看表中的数据,新增的列自动填充了系统日期的值: 下面我们在表中继续新增一个类型为TIMESTAMP类型的字段tm1,然后查看表结构: 如上

导出数据库的表的所有字段类型,长度,名称

SELECT (case when a.colorder=1 then d.name else '' end) 表名, a.colorder 字段序号, a.name 字段名, b.name 字段类型, b.length 字段长度, g.[value] AS 字段说明 FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U'

创建表、加字段注释、插入数据

create table yqdz_ycfs (id VARCHAR2(1),des NVARCHAR2(70)); 添加注释: COMMENT ON COLUMN yqdz_ycfs.id IS '预计抄表方式编码'; COMMENT ON COLUMN yqdz_ycfs.des IS '预计抄表方式描述'; 插入数据: --- 向YQDZ_YCFS(预抄方式)表中插入预置数据 insert into yqdz_ycfs(id,des)values('1','实抄'); insert int

Oracle create tablespace 创建表空间语法详解

CREATE [UNDO]  TABLESPACE tablespace_name          [DATAFILE datefile_spec1 [,datefile_spec2] ......   [{MININUM EXTENT integer [k|m]   |BLOCKSIZE integer [k]   |logging clause | FORCE LOGGING   |DEFAULT {data_segment_compression} storage_clause   |[

创建表规范 lob 字段

ORAClce 11g 提供如下特性: BasicfileOracle10g 及之前版本被称为basicfile Securefile11g中新增securefile 优点:集中写入缓存(WGC),4m空间管理,需要ASSM减少碎片,chunk智能预提取无lob索引争用无hwm争用易于管理,参数简化 SecureFiles:存储选项 MAXSIZE:指定最大 LOB 段大小 RETENTION:指定要使用的保留策略 MAX:达到 MAXSIZE 之前保留旧版本. MIN:至少将旧版本保留 MIN