使用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. element-ui的不稳定性

    伤脑筋的版本升级 element-ui升级到2.0版本了! element-ui作为比较成熟的广为人知的前端框架,原本满怀热情的去学习,也基于element-ui搭建出了一套系统,可是它居然升级了! ...

  2. 基础 - 字符读取函数scanf、getchar、gets、cin(清空缓存区解决单字符回车问题)

    0x01 scanf.getchar.cin读取单字符: 如下: //scanf读取字符 回车问题 void Sub_1_1() { char v1,v2; scanf("%c", ...

  3. RE validator

    package com.office.utility;   import java.util.regex.Pattern;   /**  * 校验器:利用正则表达式校验邮箱.手机号等  *  * @a ...

  4. Deployment Descriptor Web.xml

    Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...

  5. 学习 MeteoInfo二次开发教程(五)

    1.ActiveMapFrame部分没有大问题,按教程来就行. private void SetMapView()和private void ActiveMapFrameChanged(object ...

  6. rabbitmq (一)用法

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

  7. 字符串格式化:f-strings

    字符串格式化一般使用: {}.format 和 %s 那么python 3.6以后新加的一个功能就是: value=“zhang”f“string{value}” # 他的主要功能就是对于我们的f或F ...

  8. LINUX 中实现逻辑卷、自动挂载

    实验项目: 准备3块10G的空闲分区,将类型ID修改为8e(LVM) 使用其中2块分区组建名为myvg的卷组,查看此卷组信息 先检查有哪些物理卷 讲两块空闲分区转换成物理卷 再检查有哪些物理卷,查看其 ...

  9. 最近面试 Java 后端的感受!

    来源:cnblogs.com/JavaArchitect/p/10011253.html 上周,密集面试了若干位Java后端候选人,工作经验在3到5年间.我的标准其实不复杂: 第一能干活,第二Java ...

  10. 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)

    1. rnn.BasicLSTMCell(num_hidden) #  构造单层的lstm网络结构 参数说明:num_hidden表示隐藏层的个数 2.tf.nn.dynamic_rnn(cell, ...