zoukankan      html  css  js  c++  java
  • 数据库-SQL语句:删除和修改语句-列类型-列约束

    使用MySQL客户端连接服务器两种方式

    (1)交互模式 ——

    mysql.exe  -h127.0.0.1  -uroot  -p

    mysql   -uroot

    (2)脚本模式:——增删改

    mysql  -uroot  <  d:/xx/yy.sql

    Server => Database => Table => Row => Column

    常用SQL命令系统关键字都大写,非关键字都小写

    SHOW DATABASES;

    USE dangdang;

    SHOW TABLES;

    DESC book;

    ----------------------------

    DROP DATABASE IF EXISTS dangdang;

    CREATE DATABASE dangdang;

    USE dangdang;

    CREATE TABLE book(

      name VARCHAR(128),

      price INT

    );

    INSERT  INTO  book  VALUES('Sanguo', '15');     

    INSERT  INTO  book  VALUES('XiYou', '25');

    SELECT  *  FROM  book;

    今日目标:

    (1)补充SQL语句:删除和修改语句

    (2)类型

    (3)列约束

    1. 补充SQL语句

      (10)delete from  ; 删除指定表所有的数据

     delete from 表名  where 条件; 删除满足指定条件的记录

      (11)update  set 列=值, =值 ;  修改指定表所有数据行

     update  set 列=值, =值   where  条件修改满足指定条件的记录

    练习:创建一个2_tedu.sql文件,编写如下SQL语句

    丢弃然后重建数据库tedu,进入该库。

    创建保存部门信息的表dept:  did,   dname,   empCount

    插入3行部门数据:      10   Develop     3

         20   Market      1

    40   Test          2

    创建保存员工信息的包emp:  有如下的列:

    #eid,   ename,  sex,   salary,   birthday,   deptId

    插入6行员工数据,分属上述三部门例如

    #5513   TOM    M    8000    1990-1-1     20

    删除最后一个员工 —— 需要执行几条语句?

    一个员工由10号部门转到20号部门 —— 需要执行几条语句?

    面试题:WEB项目中哪里可能导致乱码问题?

    数据库乱码、后台语言乱码、网络传输、浏览器解析

    2.数据库中的乱码问题

     计算机只能处理数字,如何保存字符?——把字符转换为数字

     A - 65   B - 66   a - 97   b - 98

     AABBAaBb 可以编码(encode) 6565666665976698

     6565666665976698 可以解码(decode)AABBAaBb

     ASCII字符集/编码方案:包含128个字符,对英文常用字符/符号进行了编码

     GB2312/GBK字符集包含21003个字符,对英文/常用简体汉字都进行了编码兼容ASCII编码

     BIG5字符集包含13000多个字符,对英文/常用繁体汉字都进行了编码,兼容ASCII编码。

     LATIN-1字符集包含256个字符,对英文/西欧常用符号进行了编码兼容ASCII编码      

     Unicode字符集包含6万多个字符对世界上主流语言的常用符号都进行了编码,兼容ASCII编码。  编码方案又具体分为UTF-8、UTF-16、UTF-32等等多套方案。

      数据库中乱码问题产生的根源:存储数据时(编码)使用某个字符集,显示时(解码)使用了另一套

      

    解决方法——三处一致     

      (1)x.sql脚本文件另存为UTF-8

      (2)提交SQL语句时设置语句所用的字符集为UTF8

      (3)创建数据库时指定默认字符存储方案为UTF8

    3.MySQL中的列类型

      CREATE  TABLE  表 ( 列名  类型  );

      MySQL中常用的列类型 —— 在手册11章——MySQL提供的列类型比其它所有数据库都要多:

      (1)数值类型 —— 数值数据可用''括起来/也可以不

    TINYINT:整数1字节-128~127如学生.年龄

    SMALLINT:整数2字节-32768~32767如部门.员工数量

      INT:整数,4字节-2147483648~2147483647如帖子.回复数量

    BIGINT:整数8字节19位数字如当前距离计算机元年多少毫秒

    FLOAT(M,D):单精度浮点小数,4字节,3.4E38

    DOUBLE(M,D):精度浮点小数8字节,1.79E308

    DECIMAL(M,D):定点小数存储时小数点不动,不会产生四舍五入,不会产生精度丢失M表示总的有效位数,D表小数点后允许的位数,如笔记本.价格 DECIMAL(7, 2)高考成绩 DECIAL(4, 1)

    BOOL: 布尔类型,只有两个值 TRUE/1  FALSE/0,如商品.是否特价、员工.是否在岗、用户.是否在线新闻.是否置顶显示

      (2)日期时间类型——数据必须用''括起来

    DATE:日期,如员工.生日   

    CREATE TABLE emp(birthday DATE)

    INSERT INTO emp VALUES( '1990-1-1' )

    TIME:时间,如学生.上课时间

    INSERT INTO stu VALUES( '8:30:00' )

    DATETIME:日期时间,如帖子.发表时间

    CREATE TABLE article(pubTime  DATETIME)

    INSERT INTO article VALUES( '2017-10-5  22:18:35' )

      (3)字符串类型——数据必须用''括起来

    CHAR(M):定长字符串长度不够凑,操作效率高与VARCHAR!如员工.身份证号,M不能超过255

    VARCHAR(M):变长字符串结尾最多只需要一个,可能更省空间!如员工.个人简历、帖子.内容,M不能超过65535

    TEXT(M):大型变长字符串,M不能超过2G

    小知识:浮点小数

    1234.5678  等于:       

    123.45678x10^1

    12.345678x10^2

    1.2345678x10^3   科学计数法   1.2345678E3

    0.12345678x10^4

    12345.678x10^-1

    123456.78x10^-2

    ......

    CHAR(4)

    VARCHAR(4)

    'a'

    a

    a

    'ab'

    ab

    ab

    'abc'

    abc

    abc

    'abcd'

    abcd

    abcd

    'abcde'

    abcd

    abcd

    '一'

    '一二'

    一二

    一二

    '一二三'

    一二三

    一二三

    '一二三四'

    一二三四

    一二三四

    '一二三四五'

    一二三四

    一二三四

    4.MySQL中的列约束

      Constraint:约束,指插入数据时需要对数据进行的检验,商城中用户名唯一、密码不能为空、学生年龄必须在18~60之间....只有符合规定的数据才允许插入,否则插入失败。

      CREATE  TABLE  表 ( 列名  类型  约束  );

    SQL标准共提供六种列约束:

    (1)唯一约束:unique

      声明为唯一约束的列上不能出现重复值。

    (2)非空约束:not  null

      声明了非空约束的列上不能出现null值

    (3)主键约束:primary  key

      声明为主键的列上不能出现重复值,也不能出现null值且数据库根据主键列上值对整个表中的数据由小到大排序!

      注意:一个表中最多只能有一个列声明PRIMARY KEY!其它唯一且非空的列只能声明为 UNIQUE  NOT  NULL;

    小知识:计算机中NULL的含义

    Null:空、空白、空缺,指应该有此数据,但暂时不知道确切的值,就可以先声明为null。员工.年终奖、新员工.部门编号、新部门.尚未确定的部门经理

    课后练习:创建学子商城必需的数据库结构,注意列类型和列约束

    编写SQL脚本文件,重新创建数据库xz进入该数据库;

    创建笔记本型号表:

    xz_laptop_family(

    fid-型号编号,  

    fname-型号名称,

    laptopCount-属于该型号的笔记本数量 

    )

    插入三种笔记本型号,如联想E470”小米Air”“MacBook”,每型号对应的笔记本数量分别有3/2/2。

    创建笔记本信息表:

    xz_laptop(

    lid-笔记本编号

    pic-图片

    title-标题

    price-价格

    type-所属类别,如轻薄”/“游戏本”/“普通

    marketDate-上市日期

    isOnIndexTop-是否首页置顶显示

    familyId-所属型号的编号

    )

    插入7条笔记本记录,分属于上述三笔记本型号。

    删除编号为5的笔记本,对应的型号下笔记本数量应该-1

    修改编号2的笔记本所属型号为另一种型号,原型号下的笔记本数量-1新型号下的笔记本数量+1.

  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 洁净数
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 第十层的二叉树
    Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
    Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
    20. Valid Parentheses
    290. Word Pattern
    205. Isomorphic Strings
    71. Simplify Path
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/9027956.html
Copyright © 2011-2022 走看看