• 数据表的操作


    数据库:

    -操作表:

    -表: 相当关于文件

    -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_表名

  • 相关阅读:
    浅谈web网站架构演变过程
    大数据量下高并发同步的讲解
    web api中的RouteHandler
    在DOS使用SVN之执行命令整理(TortoiseProc.exe)
    调用微信退款接口问题备忘
    java上传本地文件至hdfs(简单写一下)
    wordcount计数
    结对项目(JAVA)
    WC个人项目(JAVA实现)
    自我介绍+软工5问
  • 原文地址:https://www.cnblogs.com/shaozheng/p/11759475.html
Copyright © 2020-2023  润新知