day03

    技术2024-07-17  74

    1.常用SQL命令

     (1)修改数据

      UPDATE  user  SET  upwd=’888888’, isOnline=’n’  WHERE  uid=’2’;

     (2)删除数据

      DELETE  FROM  user  WHERE  uid=’3’;

    2.计算机如何存储字符

     (1)如何存储英文字符

      ASCII: 128个英文字母及其符号进行了编码

      Latin-1: 对欧洲字符进行了编码,总共有256个,兼容ASCII

     (2)如何存储中文字符

      GB2312:  对常用的6000多汉字进行了编码,兼容ASCII

      GBK:  2万多汉字进行的编码,兼容GB2312

      Unicode: 对世界上主流国家的常用语言进行了编码,兼容ASCII,不兼容GB2312,GBK等,具体使用分为utf-8 utf-16utf-32

      中文乱码原因:mysql中默认使用Latin-1编码。

     (3)解决mysql中文乱码

      脚本文件另存为的编码为utf-8

      客户端连接服务器端的编码为utf-8

         set  names  utf8;

      服务器端创建数据库使用的编码为utf-8

         create  database  xz  charset=utf8;

     练习:编写脚本文件01_sina.sql,先丢弃再创建数据库sina,设置编码为utf-8,进入数据库,创建保存新闻数据的表news,保护有编号nid,标题title,发布时间ctime,详情detail,来源origin 插入若干条数据,修改1条,删除1条。

      在交互模式下查询数据。

    3.列类型

     创建表的时候,指定的列存储的数据类型

     create  table  t1(  id 列类型 );

     (1)数值型——引号可加可不加

      tinyint  微整型,占1个字节,范围-128~127

      smallint  小整型,占2个字节,范围-32768~32767

      int  整型,占4个字节,范围-2147483648~2147483647

      bigint  大整型,占8个字节,范围很大

      float(M,D)  单精度浮点型,占4个字节,范围比int大很多,存储的精度受影响

      double(M,D)  双精度浮点型,占8个字节

      decimal(M,D)  定点小数,占16个字节,小数点不会发生变化,M代表总的有效位数,D代表小数点后的有效位数。

      boolean/bool   布尔型,只有两个值,分别是truefalse;真正存储的时候会转为tinyint,也可以存储数字。mysql没有真正的布尔型。常用于存储只有两个值的数据,例如性别,是否在线,是否登录...

    如果插入的值是true自动转为1false自动转为0

    truefalse是关键字,使用的时候不能加引号,加引号之后就是普通的字符串,自动转为0

     (2)日期时间型——必须加引号

      date  日期型   ‘2020-10-20’ 

      time  时间型   ‘15:20:30’

      datetime  日期时间型   ‘2020-10-20 15:20:30’

     (3)字符串型——必须加引号

      varchar(M)  变长字符串,几乎不会产生空间浪费,操作速度相对慢,M的最大值是65535,常用于存储变化长度的数据,例如用户名,密码,文章内容...

      char(M)  定长字符串,可能会产生空间浪费,操作速度相对快,M的最大值是255,常用于存储固定长度的数据,例如身份证号,手机号码等

      text(M)  大型变长字符串,M的最大值是2G

     

    varchar(5)

    char(5)

    a

    a\0

    a\0\0\0\0

    ab

    ab\0

    ab\0\0\0

    一二三

    一二三\0

    一二三\0\0

     

     

     

    浮点型

    123456.789e-1

    12345.6789

    1234.56789e+1

    123.456789e2

    12.3456789e3

    TB  GB  MB  KB  BYTE(字节)  Bit()

    1BYTE=8Bit

     位,是计算机底层的单位,只能存储1或者0

     二进制 (满21

     1    2   3    4  

     1   10   11   100

    选择合理的列类型

    Create  table  t1(

      id  int,

      age  tinyint,

      Salary  decimal(8,2),    #999999.99

      Ctime  date,

      Phone  char(11),

      Detail  varchar(5000)

    );

     

    练习:使用合理的列类型,编写脚本文件02_xuezi.sql,先丢弃再创建数据库xuezi,设置编码为utf-8,进入数据库,创建保存笔记本数据的表laptop,包含有编号lid,标题title,价格price,库存量stockCount,上架时间shelfTime,是否为首页推荐isIndex,插入若干条数据。

     

    3.列约束

     对要插入的数据进行特定的验证,只有符合要求才允许插入,例如插入性别只能是男或者女,例如一个人的成绩范围0~100

     Create  table  t1( lid INT 列约束 );

     (1)主键约束——primary key

      声明了主键约束的列上不允许插入重复的值,一个表中只能有一个主键约束,通常加在编号列,会加快数据的查找速度。

    NULL 空,代表一个无法确定的值,例如无法确定一个员工的生日,电话等,无法确定一个商品的价格;

    是关键字,不能加引号。

     主键列上不允许插入NULL

     (2)非空约束—— NOT  NULL

      声明了非空约束的列上不允许插入NULL

     

    Processed: 0.021, SQL: 10