mysql初学者教程和练习文档格式.docx
《mysql初学者教程和练习文档格式.docx》由会员分享,可在线阅读,更多相关《mysql初学者教程和练习文档格式.docx(35页珍藏版)》请在冰点文库上搜索。
![mysql初学者教程和练习文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/0981daa0-042d-47b6-924e-179f6baf6c29/0981daa0-042d-47b6-924e-179f6baf6c291.gif)
---上下键可以调用历史记录命令
---每一行命令要以分号结束
---create(创建)database(数据库)lamp134(数据库名)
createdatabaselamp134;
QueryOK,1rowaffected(0.00sec)
---删除数据库dropdatabase数据库名
dropdatabaselamp134;
QueryOK,0rowsaffected(0.08sec)
---设置字符集的目的就是为了防止数据库存储中文时乱码
---创建数据库如果lamp134不存在,同时设置默认的字符集为utf8(没有-)
createdatabaseifnotexistslamp134defaultcharset=utf8;
---删除数据库如果存在lamp134
dropdatabaseifexistslamp134;
QueryOK,0rowsaffected(0.00sec)
---选择数据库lmap134
uselamp134
Databasechanged
----创建表
createtablestu(
----id字段名int字段属性notnull不为空auto_increment自增primarykey主键(唯一、不能为空)
->
idintnotnullauto_incrementprimarykey,
namevarchar(20)unique,---varchar(长度)字符串类型
sextinyintdefault3,---tinyint较小的整型unique唯一default3设置默认值为3(该位置没有写入数据时默认添加3)
agetinyint
)engine=myisamdefaultcharset=utf8;
----engine数据表的引擎defaultcharset=utf8设置默认字符集
QueryOK,0rowsaffected(0.14sec)
---showcreatetable数据表名显示创建表的语句\G把数据立起来显示
showcreatetablestu\G
***************************1.row***************************
Table:
stu
CreateTable:
CREATETABLE`stu`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`name`varchar(20)DEFAULTNULL,
`sex`tinyint(4)DEFAULT'
3'
`age`tinyint(4)DEFAULTNULL,
PRIMARYKEY(`id`),
UNIQUEKEY`name`(`name`)
)ENGINE=MyISAMDEFAULTCHARSET=utf8'
1rowinset(0.00sec)
--查看表结构
descstu;
+-------+-------------+------+-----+---------+----------------+
|Field|Type|Null|Key|Default|Extra|
|id|int(11)|NO|PRI|NULL|auto_increment|
|name|varchar(20)|YES|UNI|NULL||
|sex|tinyint(4)|YES||3||
|age|tinyint(4)|YES||NULL||
4rowsinset(0.11sec)
---对于id是主键、自增,不要管他!
!
---增insert插入
---插入一条数据insertinto表名(字段名1,字段名2……)value(字段1的值,字段2的值……);
insertintostu(name,sex,age)value('
李大锤'
2,18);
QueryOK,1rowaffected(0.02sec)
---查询stu表的所有的数据select查
select*fromstu;
+----+--------+------+------+
|id|name|sex|age|
|1|李大锤|2|18|
1rowinset(0.06sec)
---直插入了name,age两个字段,sex字段使用默认值3
insertintostu(name,age)value('
泰国'
24);
---改(执行update一定要加条件,否则修改的就是所有的数据)
---update表名set字段名1=值1,字段名2=值2whereid=3
updatestusetname='
凯哥'
sex=2whereid=3;
Rowsmatched:
1Changed:
1Warnings:
0
---删(执行删除时一定要加条件,否则会删除所有的数据)
deletefromstuwhereid=3;
---exit退出数据库
---\c取消当前行命令
---导出数据库(退出数据库)
mysqldump-uroot-plamp134(数据库的名)>
lamp134.sql--该位置没有分号
--密码
---导入数据库(确保lamp134是存在的)
mysql-uroot-plamp134<
lamp134.sql
---显示当前数据库下所有的数据表
showtables;
+-------------------+
|Tables_in_lamp134|
|stu|
---如果stu表存在,执行删除
droptableifexistsstu;
QueryOK,0rowsaffected(0.01sec)
---更新设置sex=2条件id=1
updatestusetsex=2whereid=1;
QueryOK,1rowaffected(0.05sec)
---删除id=1的数据
deletefromstuwhereid=1;
---导出数据库mysqldump-uroot-p数据库名>
数据库文件的保存路径和名(退出mysql数据库)
mysqldump-uroot-plamp134>
---输入密码
---导入mysql-uroot-p数据库名<
数据库文件的地址
---用最少的地方存储最多的数据
createtabledemo(
namevarchar(25)notnull,
);
QueryOK,0rowsaffected(0.10sec)
---在创建表的时候没有选择默认的引擎,使用系统默认的引擎
---默认字符集:
---数据库遵循数据库系统默认的字符集
---数据表遵循当前数据的默认的字符集
---字段遵循当前表的默认字符集
showcreatetabledem\G
showcreatetabledemo\G
demo
CREATETABLE`demo`(
`name`varchar(25)NOTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8
----对于tinyint类型有符号最大值为127无符号最大值255
----修改表结构altertable表名modify(修改)字段名新的属性和约束条件
altertabledemomodifyagetinyintunsigned;
---unsigned表示无符号
QueryOK,4rowsaffected(0.12sec)
Records:
4Duplicates:
0Warnings:
---向demo表中添加新字段altertable表名add(添加)属性名类型和约束
altertabledemoaddpriceint(5)notnull;
QueryOK,0rowsaffected(0.11sec)
0Duplicates:
descdemo;
+-------+---------------------+------+-----+---------+----------------+
|name|varchar(25)|NO||NULL||
|age|tinyint(3)unsigned|YES||NULL||
|price|int(5)|NO||NULL||
4rowsinset(0.02sec)
---修改表结构zerofill自动补零
altertabledemomodifypriceint(5)zerofill;
--当数字不够5位时,自动补充前导零
QueryOK,11rowsaffected(0.06sec)
11Duplicates:
---设置price的属性为float(5,2)2表示保留两位小数5表示包含小数点一共5位
altertabledemomodifypricefloat(5,2);
QueryOK,11rowsaffected,3warnings(0.08sec)
3
|price|float(5,2)|YES||NULL||
---char()指定存储时采用固定的长度--存密码md5()加密32位
---varchar()存储时采用可变长度
---char(20)存储时,占用的都是20
---varchar(20)实际存储时,有几个占几个
---执行效率char()执行效率要高于varchar()
---enum()枚举类型,给的类型中选择一个,如果插入的语句没有在指定的范围内,什么都不写入
altertabledemoaddsexenum('
nan'
'
nv'
yao'
);
---如果是在排序时,排序的规则遵守enum()单元的顺序
QueryOK,0rowsaffected(0.07sec)
--删除年龄为空null的数据
deletefromdemowhereageisnull;
QueryOK,8rowsaffected(0.00sec)
---查询所有的数据,按照age进行排序,升序
select*fromdemoorderbyage;
+----+----------+------+--------+------+
|id|name|age|price|sex|
|12|xiaoze|24|99.99|NULL|
|13|xiaozeze|24|999.99|NULL|
|1|admin|120|0.00|NULL|
|2|admin|126|0.00|NULL|
|3|admin|127|0.00|NULL|
|4|admin|127|0.00|NULL|
|5|admin|140|0.00|NULL|
|6|admin|255|0.00|NULL|
|7|admin|255|0.00|NULL|
9rowsinset(0.00sec)
---desc降序asc(默认效果)升序
select*fromdemoorderbyagedesc;
----修改表结构
altertabledemomodifysexenum('
---排序
QueryOK,9rowsaffected(0.07sec)
9Duplicates:
select*fromdemoorderbysex;
|1|admin|120|0.00|yao|
|2|admin|126|0.00|yao|
|3|admin|127|0.00|yao|
|4|admin|127|0.00|yao|
|5|admin|140|0.00|yao|
|6|admin|255|0.00|nv|
|7|admin|255|0.00|nan|
|12|xiaoze|24|99.99|nan|
|13|xiaozeze|24|999.99|nan|
---text存储大段的文字(评论的内容,商品的描述)
---修改表结构altertable表名操作
---添加字段(默认添加的字段为最后一个位置)
altertabledemoaddqqint;
QueryOK,0rowsaffected(0.06sec)
---添加email字段到第一个位置
altertabledemoaddemailvarchar(30)first;
---添加aa字段在email的后面
altertabledemoaddaaintafteremail;