改:Update语句 Update 4 问 改哪张表? 改哪几列的值? 分别改为什么值? 在哪些行生
效?
语沒 Upd; Set 列1 列2 列n
法:
date表名 新值
=新值2, =新值n.. :re expr
piysql> set names gbk; WhQuery OK, 0 rows affected <0.00 sec> e
hvsql> select * from php3; 例:+ ------- S gender ? -------- S salary S name ? com S wangwu ! NULL ? baidu ! 5875 S zhengqi :红拂 3 rows in
! fb S ! NULL S :M
:女
? sina
:大i科技
! 5900 ! 30
I 300 J
! 10 !
set <0.00 sec>
ysql> update php3 -> set —> gender -> con - *
Query OK, 3 rows affected <0.03 sec> Bows matched: 3 Changed: 3 inysql> select ? from php3; gender
salary Uarnings: 0
rows in set <0.05 sec>为为为 5875 5900 30 NULL 300 10
删除:delete Delete 2 问 从哪张表删除数据? 要删除哪些行?
语法:
Delete from 表名 where expr 例:
nysql> delete fron php3
1J
一> where name = v;angtiu ; Query OK, 1 row affected <0-06 sec>
|nysql> select * f ron php3 ; + --------------- ! gender ?! salary ? fb
----------
! nane H
? sina ! 5900 : 300 ! 2hengqi :男
■
:红拂
:女
|2 rows in set <0.00 sec> 查:select 查询3问 1:查哪张表的数据? 2:查哪些列的数据? 3:查哪些行的数据?
:大备科技! 230 J 10 丨
语法:
Select列1,列2,列3,…列n From表名 Where expr;
nysql> select nane,salary —> from
php3 —> where salary > 5000;
■ name 丨 salary S S zhengqi S 5900 ?
1 row in set <0.00 sec> nysql> select name salary -> from
php3 —> where salary < 1000;
4——H -------- + 'name 丨 salary S 230 i :红拂 -------- ? -1
------ 1 row in set <0.00 sec> nysql> select
—> name,gender,com^salary^fb —> fron php3 —> where gender = *女,;
-igender ■ f -------- ■! ---- ? ------ + ---------- -salary 丨 fb S - H
230 : 10 ! !红拂: 女 :大唐科技 1 row in
set <0. .00 sec>
注:如果取一张表的所有列,可以用*代替所有列
nysql> select * from php3 一>
v/hei^e gender = * 女* ; !S name 丨 gender 丨 con 丨4?一 一 —-- + ------- + --------- + 一 — — — — — — — + - ------ + I salary 丨 fb I |?红拂丨女 丨大唐科技丨 230丨10 : row in set <0.怎么建表?
以在A4纸上建表为例, 学号 姓名 001 家乡 衡水 入学年份 2012 自我介绍 张三 分析:我们只要把第一行,表头建好了,这张表也就完成了. 至于下面的001,张三,这不是表的概念,而是表中储存的数据. 其实,建表过程,就是一个画表头的过程, 从术语上讲,这张表有5个列, 建表的过程,就是一个声明字段过程
那么建表和列类型又有什么关系呢?
分析:再看上面的表,A4纸是数据的存储空间,而A4的大小是有限的. 请问:你准备给学号留多宽?给姓名留多宽?自我介绍又留多宽?
自然的,姓名如果留的过宽,比如20个字都能存,但是一般人的姓名,就三四字…浪费了. 如果留的过窄,导致存不下,更有问题.
对应的,A4纸空间有限,硬盘空间也有限,
我们建列时,自然想的是…_能够容纳放置的内容,但是又不浪费.
存储同样的数据,不同的列类型,所占据的空间和效率是不一样的--这就是我们建表前要前列 类型的意义.
列类型学习
所以--重点学列类型的荐储范围与占据的字节关系.
mysql三大列类型
数值型 整型
Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill 整型系列所占字节与存储范围的关系. 定性:占字节越多,存储范围越大. 下图:是具体的数字分析
Tinyint 1 个字节 8 个位 0 - 28-1 ,0-255
?2 八 7 ——> +27-1
A
A
分析:
Smallint 2 个字节,16 位 0216-1 = 65535
-215 —> +215-1,-32768 -> 32767
A
AA
一般而言,设某类型N字节 N字节,8N位.
0 ——> 2
A
A
8N-1
A
-2(8N-1) +2(8N-1)-1;
对于int型:占的字节越多,存储的范围也越大. 类型 字节 最小值 最大值 〖带符号的不带符号的) 127 255 32767 65535 8388607 16777215 2147483M7 4204Q67295 9223372036854775807 18446744073709551615 (带符号的不带符号的> l -128 0 2 -32 768 0 3 -8388608 0 4 -2147483648 0 8 -9223372036854775808 0 tinvmt srnallinl mediumint Int 整型系统的可选参数:XXint(M) unsigned zerofill 例:age tinyint(4) unsigned,或者 stunum smallint(6) zerofill;
Unsigned:代表此列为无符号类型,会影响到列的存储范围.(范围从0开始) (不加unsinged,则该列默认是有符号类型,范围从负数开始)
Zerofill:代表0填充,即:如果该数字不足参数M位,则自动补0,补够M位. 1:如果没有zemfill属性,单独的参数M,没有任何意义.
2:如果设置某列为zerofill,则该列已经默认为unsigned,无符号类型.
小数型
Float(M,D),decimal(M,D)
M叫\精度”>代表”总位数\,而D是”标度\,代表小数位.(小数右边的位数)
浮点数占多大的空间呢
A
答:float 能存 10 八 3 8 , 10-38 如果M<=24,点4个字节,否则占8字节 用来表示数据中的小数,除了 float…浮点.
还有一种叫定点decimal,定点是把整数部分,和小数部分,分开存储的.