数据库-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字符集:包含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语句:删除和修改语句-列类型-列约束的更多相关文章
- MySql添加用户,新建数据库,用户授权,删除用户,修改密码
转自:http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html MySql中添加用户,新建数据库,用户授权,删除用户,修改 ...
- sql server 删除索引的语句
DROP INDEX index_name ON talbe_nameDROP INDEX IX_TBlueyBook_10 ON 表名
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...
- MySql 5.7中添加用户,新建数据库,用户授权,删除用户,修改密码
转自http://blog.csdn.net/w690333243/article/details/76576952 1.新建用户 创建test用户,密码是1234. MySQL -u root -p ...
- 数据库SQL server 删除一张表中的重复记录
--建立一张表 create table cat( catId int, catName varchar(40) ) --将下边的插入语句,多执行几次. insert into catvalues(1 ...
- 10月16日下午MySQL数据库CRUD操作(增加、删除、修改、查询)
1.MySQL注释语法--,# 2.2.后缀是.sql的文件是数据库查询文件. 3.保存查询. 关闭查询时会弹出提示是否保存,保存的是这段文字,不是表格(只要是执行成功了表格已经建立了).保存以后下次 ...
- MySQL支持的列类型
MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...
- Mysql增加、删除和修改列属性和约束,和一些有用的查询语句
最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧.添加表字段alter table` 表名称` add transactor varchar(10) ...
- SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据
SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...
随机推荐
- Hibernate复习
第一天 Hibernate是一个持久层的ORM框架.两个配置文件, 类名.hbm.xml类的属性和表的列对应 hibernate.cfg.xml核心配置文件 Hibernate相关API: Confi ...
- Scrapy学习篇(十)之下载器中间件(Downloader Middleware)
下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量.底层的系统. 激活Downloader Midd ...
- Power Designer 转C#实体类方法
1.打开Power Designer菜单 Tools,选择如图 2.弹出方框中选择PD安装目录下的如图地址 3.object language选择正确目录后,可选如图语言,如C#.再填写name ...
- vue源码核心部分
1.模板编译 初始化时做的:template ==parse()==>ASTtree ==generate()==>render函数 ==> mount(调用dom方法) 每次 ...
- NFS服务配置
FS服务会经常用于在网络上共享存储. 比如有3台机子A,B,C;他们都需要访问同一个目录,使用NFS, 只需要把图片都放在A上,然后A共享给B和C即可. 访问B和C时,是通过网络的方式访问A上的哪个目 ...
- delphi 字符串string转流TStream
function StringToFile(mString : string; mFileName : TFileName) : Boolean;var vFileChar : file of Cha ...
- vue-cli 选项无法选问题
winpty vue.cmd create admin 这样创建就可以了
- markdown工具对比: 作业部落 vs Typora
2者都挺优秀的,但是在具体使用时还是遇到一些问题: 功能 作业部落 Typora 图片调整大小 × √ 在线同步,易于分享 √ × pdf对emoji的支持 × √ pdf的text view: Vi ...
- 买二手iphone的建议
手机到手后一定要在第一时间把“按键开关.指纹解锁.指南针.照相机.话筒.听筒.手电筒.定位.WiFi”都测一遍. 环境有无wifi:imei:×××××序列号:××××× 外观和零件:1外观,1是否粗 ...
- mysql数据库支持 emoji表情
关键点: 1. 修改mysql数据库表ALTER table <tablename> modify <clolum> char(100) character set utf ...