传智播客mysql.docx
《传智播客mysql.docx》由会员分享,可在线阅读,更多相关《传智播客mysql.docx(48页珍藏版)》请在冰豆网上搜索。
![传智播客mysql.docx](https://file1.bdocx.com/fileroot1/2022-10/11/95729a1a-b8fd-44d1-93ec-51894915f3d2/95729a1a-b8fd-44d1-93ec-51894915f3d21.gif)
传智播客mysql
数据库服务器——>N多库——>N表——>行与列
1先建立数据库服务器
2建立一个库
3再建表
Mysqld服务器
一、连接数据库
1连接数据库所需要的工具:
Mysql作为数据库服务器来运行,任何满足mysql通信规的软件都可以作为客户端来连接服务器
常用的客户端:
mysqlfrontnavcat,基于web的phpMyAdmin,还有mysql自带的命令行客户端
2以命令行连接为例:
注意:
如果在命令行提示下出现如下提示:
则说明:
没有配置环境变量,导致系统找不到mysql.exe
解决:
1.配置环境变量,制定mysql\bin目录
2.每次进入到mysql\bin目录,再运行mysql
3如何连接服务器
服务器地址(可用ip,域名):
端口(3306)
用户名
密码
Mysql–hlocalhost–uUserName–pPassWd
-h如果不写,则默认连localhost
Mysql–hlocalhost–uroot–p回车输入密码
Mysql–uroot–p123456
表格(多行多列,二位结构)
通讯录表:
年龄
手机号
薪资登记表:
性别
公司
工资
饭补
多表成库,表存于库下面,一个库下边可以有多个表
库存在于数据库服务器,一个服务器下面可以有多个库
入门语句:
1查看当前服务器下面,有哪些库(database)
showdatabases;
2创建一个数据库
createdatabaseDBName[字符集声明,整理声明];
3删除数据库
dropdatabasetest2;
4修改数据库
(只能修改字符集和整理集,简单,先自己看)
能否修改数据库的名字?
答不能!
5选择数据库
在进行表,行的相关操作时,要先选择数据库
useDBName;//选择相应的数据库
mysql>useshop;
Databasechanged
6如何查看一库下面的所有表
showtables;
7如何删除一表
droptabletableName;
8如何修改表名
renametableoldName(旧表名)tonewName(新表名);
9查看表结构
desctableName;//查看表结构
10最简单的建表结构
createtable表名(
列1名称列1类型,
列2名称列2类型(最后一列前不要加‘,’)
);
这里先记住两种最常用列类型int(整形),varchar(字符串)
实际操作:
创建一学籍表,有2个字段,id,name,分别代表学号和
createtablestu(
idint,
namevarchar(10)
);
11解决字符集问题:
默认建表一般用utf8,而我们在windows下窗口时gbk的,
因此,需要声明字符集。
setnamesgbk;
增删改查例子
insertintomsg增加
(id,title,name,content)
values
(1,‘初来乍到’,‘三’,‘刚来能不能当老大’);
insertintomsg
(id,title,name,content)
values
(1,‘又来了’,‘四’,‘你只能千年老二’);
updatemsg更新、改
set
id=2,
content=‘偏要当老大’
where
name=‘四’;
插入多行
insertintomsg
(id,title,name,content)
Values
(3,‘3标题’,‘备’,‘雌雄双剑’),
(4,‘4标题’,‘关羽’,‘青龙偃月刀’),
(5,‘5标题’,‘飞’,‘丈八蛇矛’);
#删除
deletefrommsgwhereid=2;
#查
select*frommsg;查询整表容
selectid,titlefrommsg;查询id,title这两列
selectid,titlefrommsgwhereid>2;查id>2的容
发现的一小问题
语句打错以后应该退出本语句,再继续打新的语句也可以打\c,提出本语句
如何破解数据库的密码:
1.通过任务管理器或者服务管理,关掉mysql(服务进程)
2.通过命令行+特殊参数开启mysqld
Mysqld--skip-grant-tables
3.此时,mysqld服务进程已经打开,并且,不需要权限检查。
4.mysql–uroot无密码登陆服务器
5修改权限表
A:
usemysql;
B:
updateusersetpassword=password(‘11111’)whereuser=’root’;
C:
flushprivileges;
6.通过任务管理器,或服务管理,关掉mysqld服务进程
7.再次通过服务管理,打开mysql服务
即可用修改后的新密码登陆、
增删改查案例过程分析:
用户注册表单收集,提交数据,注册页面收集到表单的数据后,形成insert语句,user表插入该条数据,用户注册完成.
前台用户中心,用户新昵称,根据新昵称和用户id,形成update语句
完成昵称修改.
管理员后台点击会员列表,此时,网页形成select语句,查询出所有会员的数据,完成会员的查看.
管理员后台选中某用户并且删除,捕捉此用户的id,根据用户id形成相应的delete语句,
执行delete语句,完成用户的删除.
增删改查基本语法学习
增:
insert
Insert3问
1插入哪表?
2插入哪几列?
3这几列分别插入什么值?
Insertinto表名insertinto表名
(列1,列2……列n)
Valuesvalues
(值1,值2…..值n)(值1,值2…..值n)
值与列,按顺序,一一对应
特殊:
insert语句允不允许不写列名
答:
允许
如果没有声明列名,则默认插入所有列
因此,值应该与全部列,按顺序一一对应
例:
建一工资登记表
2插入部分列
3插入所有列
注:
文中的setnamesgbk;是为了告诉服务器,客户端用的是gbk编码,防止乱码
4插入所有列的简单
改:
update语句
Update4问
改哪表?
改哪几列的值?
分别改为什么值?
在哪些行生效?
语法:
Update表名
Set
列1=新值1,
列2=新值2,
列n=新值n....
Whereexpr
例:
删:
delete
Delete2问
从哪表删除数据?
要删除那些行?
语法:
Deletefrom表名
whereexpr
例:
仿ecshop建表:
1:
安装ecshop(打开gd扩展)
2:
安装phpMyAdmin
#建木瓜库
Createdatabasemuguacharsetutf8;
#选中木苦
Usemugua;
#创建商品表
Createtablegoods(
Goods_idintprimarykeyauto_increment,
cat_idsmallintnotnulldefault0,
goods_snchar(15)notnulldefault'',
goods_namevarchar(30)notnulldefault'',
click_countmediumintunsignednotnulldefault0,
brand_idsmallintnotnulldefault0,
goods_numbersmallintnotnulldefault0,
market_pricedecimal(7,2)notnulldefault0.00,
shop_pricedecimal(7,2)notnulldefault0.00,
all_timeintunsignetnotnulldefault0
)charsetutf8;
#把ecshop的商品数据导入到木瓜库
insertintomugua.goods
select
goods_id,cat_id,goods_sn,goods_name,click_count,
brand_id,goods_number,market_price,
shop_price,
add_time
fromshop.goods;
#建栏目表
createtablecategory(
cat_idsmallintprimarykeyauto_increment,
cat_namevarchar(30)notnulldefault'',
parent_idsmallintnotnulldefault0
)charsetutf8;
#把ecshop的栏目数据导入到木瓜库
insertintomugua.category
select
cat_id,cat_name,parent_id
fromshop.category;
#建品牌表
createtablebrand(
brand_idsmallintprimarykeyauto_increment,
brand_namevarchar(30)notnulldefault''
)charsetutf8;
#把ecshop的品牌数据导入到木瓜库
insertintomugua.trand
select
brand_id,brand_name
fromshop.trand;
查:
select5种子句
◆Where条件查询
◆groupby分组
◆having筛选
◆orderby排序
◆limit限制结果条数
where:
各种条件查询场合
常用运算符
<小于>大于!
=或<>不等于=等于<=大于等于>=小于等于in在某集合between在某围
in(值1,值2...值n),等于值1—n任意一个都行(in在某集合)
例:
selectgoods_id,cat_id,goods_namefromgoodswherecat_idin(4,5);
Between值1and值2,表示在值1和值2之间(between在某围)
例:
selectgoods_id,goods_nmae,shop_pricefromgoodswhereshop_pricebetween2000and3000;
not或!
逻辑非or或||逻辑或and或&&逻辑与
selectgoods_id,goods_name,shop_pricefromgoodswhereshop_price>=3000andshop_price<=5000orshop_price>=500andshop_price<=1000;
selectgoods_i