数据表的操作

数据库:

-操作表:

-表: 相当关于文件

-create tanle 表名(

字段名 列类型 [可选参数],

字段名 列类型 [可选参数])charset=utf8;

注意 : 每一列最后加逗号,最后一列不加!

列约束(不约束关键字大大小写):

  • auto_increment : 自增

  • primary key : 主键索引,加快查询速度,列的值不能重复

  • NOT NULL : 标识该字段不能为空

  • DEFAULT : 设置默认值

create table t1(
    id int ,
    name char(5)
    )charset = utf8;
#- 增加数据: --> 创建新的一列
insert into 表名 (列1,列2) values (值1,"值2");
insert into t1 (id,name) values (1,'zekai');
# - 查询数据:
select 列1,列2 from 表名  查询单个列的值
select * from 表名  查询表内所有的内容

create table t2(
    id int auto_increment primary key,
    name char(10)
    )charset = utf8;
insert into t2 (name) values ('zekai');
# --建表模板 :
create table t3(
    id int unsigned auto_increment primary key,
    name char(10) not null default 'xxx',
    age int not null default 0
    )charset = utf8;
insert into  t3 (age) values (29);

列类型:

-create table 表名(create table 表名(
                字段名  列类型 unsigned [可选的参数],## 记住加逗号
                字段名  列类型 [可选的参数],  ### 记住加逗号
                字段名  列类型 [可选的参数]  ### 最后一行不加逗号
                .....
            )charset=utf8

数字:

#--整形 :
    tinyint(-127,128)  / smallint / int(推荐)
    mediumint / bigint
 区别 :
    -a.整数类型
    -b.取值范围 ,应场景,选取合适的
    -c.unsigned 加上代表不能取负数
#--浮点数 :
    float : 不一定精确
    decimal : 非常精确的数字
     -  eg:decimal(m,n)  m : 数字的总个数,n : 小数的个数
    create table t4(
        id int auto_increment primary key,
        salary decimal(8,6),
        num float
        )charset=utf8;
    
                        正好 10 位:
                        mysql> insert into t5 (salary, num) values (500023.2312345678, 5000.2374837284783274832);
                        Query OK, 1 row affected (0.04 sec)

                        mysql> select * from t5;
                        +----+-------------------+---------+
                        | id | salary            | num     |
                        +----+-------------------+---------+
                        |  1 | 500023.2312345678 | 5000.24 |
                        +----+-------------------+---------+
                        1 row in set (0.00 sec)
                        
                        少于10位:
                        mysql> insert into t5 (salary, num) values (500023.231234567, 5000.2374837284783274832);
                        Query OK, 1 row affected (0.04 sec)

                        mysql> select * from t5;
                        +----+-------------------+---------+
                        | id | salary            | num     |
                        +----+-------------------+---------+
                        |  1 | 500023.2312345678 | 5000.24 |
                        |  2 | 500023.2312345670 | 5000.24 |
                        +----+-------------------+---------+
                        
                        多于10位:
                        mysql> insert into t5 (salary, num) values (500023.23123456789, 5000.2374837284783274832);
                        Query OK, 1 row affected, 1 warning (0.03 sec)

                        mysql> select * from t5;
                        +----+-------------------+---------+
                        | id | salary            | num     |
                        +----+-------------------+---------+
                        |  1 | 500023.2312345678 | 5000.24 |
                        |  2 | 500023.2312345670 | 5000.24 |
                        |  3 | 500023.2312345679 | 5000.24 |
                        +----+-------------------+---------+

字符串 :

-char(n) : n 表示固定长度

-varchar(m) : m 表示可变长长度

区别 :

char : 定长, 无论插入的字符是多少个,永远固定占规定的长度(加密)

varchar : 变长, 根据插入的字符串的长度来计算所占的字节数,但是有一个字节是用来保存字符串的大小的

注意 : 不能确定插入的数据的大小, 一般建议使用 varchar(255)

时间日期类型 :

YEAR
                        YYYY(1901/2155)

                    DATE
                        YYYY-MM-DD(1000-01-01/9999-12-31)

                    TIME
                        HH:MM:SS('-838:59:59'/'838:59:59')

                    DATETIME  (推荐)

                        YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)

                    TIMESTAMP

                        YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
                                
create table t8(
    d date,
    t time,
    dt datetime)  ; 
insert into t8 values(now(),now(),now());                            

枚举: enum

列出所有的选项, 只能在该范围内选择

create table t9(
    id int auto_increment primary key,
    gender enum('male','female')
    )charset=utf8;
insert into t9 (gender) values ('female');

删 :

- drop table 表名

改 :

-修改表名 :alter table old_表名 rename new_表名

  • 增加字段 : alter table 表名 add 字段名 列类型 [可选择的参数];

    • 加载在最后一列后

    alter table 表名 add 字段名 列类型 [可选择的参数] first ;

         - #### 加载在第一列

    alter table 表名 add 字段名 列类型 【可选择的参数】 after 字段名1;

    -加载在字段名1后面

-删除字段 :

- alter table 表名 drop 字段名;

  • 修改字段 :

    • alter table 表名 mod4ify 字段名 数据名 [参数]; #该内部的参数
     - #### alter table 表名 change 旧子段名  新字段名 新数据类型 [参数];

查:

  • show tables;

    • show create table 表名 : 查看表的创建语句

复制表结构 :

-create table 表名 like old_表名

猜你喜欢

转载自www.cnblogs.com/shaozheng/p/11759475.html