使用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字符集:包含1万3000多个字符,对英文/常用繁体汉字都进行了编码,兼容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):定长字符串,长度不够\0来凑,操作效率远高与VARCHAR!如员工.身份证号,M不能超过255

VARCHAR(M):变长字符串,结尾最多只需要一个\0,可能更省空间!如员工.个人简历、帖子.内容,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\0\0\0

a\0

'ab'

ab\0\0

ab\0

'abc'

abc\0

abc\0

'abcd'

abcd

abcd

'abcde'

abcd

abcd

'一'

一\0\0\0

一\0

'一二'

一二\0\0

一二\0

'一二三'

一二三\0

一二三\0

'一二三四'

一二三四

一二三四

'一二三四五'

一二三四

一二三四

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.

数据库-SQL语句:删除和修改语句-列类型-列约束的更多相关文章

  1. MySql添加用户,新建数据库,用户授权,删除用户,修改密码

    转自:http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html MySql中添加用户,新建数据库,用户授权,删除用户,修改 ...

  2. sql server 删除索引的语句

    DROP INDEX index_name ON talbe_nameDROP INDEX IX_TBlueyBook_10 ON 表名

  3. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  4. MySql 5.7中添加用户,新建数据库,用户授权,删除用户,修改密码

    转自http://blog.csdn.net/w690333243/article/details/76576952 1.新建用户 创建test用户,密码是1234. MySQL -u root -p ...

  5. 数据库SQL server 删除一张表中的重复记录

    --建立一张表 create table cat( catId int, catName varchar(40) ) --将下边的插入语句,多执行几次. insert into catvalues(1 ...

  6. 10月16日下午MySQL数据库CRUD操作(增加、删除、修改、查询)

    1.MySQL注释语法--,# 2.2.后缀是.sql的文件是数据库查询文件. 3.保存查询. 关闭查询时会弹出提示是否保存,保存的是这段文字,不是表格(只要是执行成功了表格已经建立了).保存以后下次 ...

  7. MySQL支持的列类型

     MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  8. Mysql增加、删除和修改列属性和约束,和一些有用的查询语句

    最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧.添加表字段alter table` 表名称` add transactor varchar(10) ...

  9. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

随机推荐

  1. PAT 甲级 1054 The Dominant Color (20 分)

    1054 The Dominant Color (20 分) Behind the scenes in the computer's memory, color is always talked ab ...

  2. kafka命令大全

    kafka命令大全 http://orchome.com/454

  3. time&datetime

    关于time模块的代码部分 1 #_*_coding:utf-8_*_ 2 __author__ = 'Alex Li' 3 4 import time 5 6 7 # print(time.cloc ...

  4. 微信小程序精品demo

    http://www.jianshu.com/p/0ecf5aba79e1 感谢笔者的分享!

  5. ado.net调用带参数的sql语句

  6. 把已经安装到C盘的软件完美移动到D盘

    背景信息 今天早上在安装软件的时候发现C盘爆满,只剩下最后10G了.而我要安装的玩意儿必须装到C盘. 靠清理垃圾文件来解决并不是一个好方法,实际上通常垃圾文件占用很少,而且就算清理了,也还会再出现. ...

  7. rabbitmq (一)用法

    首先,主机一是window系统,虚拟机二 ubuntu, ubuntu部署了rabbitmq服务端.默认监听5672端口. 由于rabbitmq内部有严格的权限系统,使用之前必须配置好权限. 默认网页 ...

  8. Python 爬58同城 城市租房信息

    爬取完会自动生成csv电子表格文件,含有房价.押付.链接等信息 环境 py2.7 pip install lxml pip install cssselect   #coding:utf-8 impo ...

  9. Maven CXF wsdl2Java 给指定名空间设置包名

    <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin< ...

  10. 《面向对象程序设计(Java)》第四周学习总结

    第一部分 第四章部分理论知识 1.面向对象程序设计概述:java是完全面向对象的,必须熟悉OOP才能编写java程序. 类:由类构造对象的过程称为创建类的实例. 封装:封装是将数据和行为组合在一个包中 ...