MySQL数据库的使用(一)

MySQL数据库的基本操作语言
	show databases;--查看当前所有的数据库
	use databaseName;  --使用当前的数据库
	show tables;--查看当前库中所有的表
	use databaseName;--选择使用数据库
	exit;--进入mysql之后,退出当前数据库

 	数据库  --数据表的集合
 	数据表 --表是数据的集合
在DOS窗口下执行:连接mysql的命令
	mysql -h 主机地址 -u用户名 -p用户密码
 	远程连接失败:一般来说是网络没有开启:
 	开启网络:net start mysql
 	远程连接数据库:
  	ping ip看能不能ping通。
  		192.168.203.47
  		172.29.8.1
  	ip:本机的IP地址
   		localhost
   		127.0.0.1
   		192.168.203.47
 	远程连接:
  		TCP/IP 协议 
  		SSH  连接
  		HTTP 协议连接
	A连接数据库
 	登录本机:
  		1、mysql -u userName -p passWord
  		2、mysql -h localhost -uuserName -ppassWord
  		3、...>mysql -u root -p
  		Enter password:root(用户密码)
 	登录远程:mysql -h host -uuserName -ppassWord 
 	B使用mysql的根用户
  		use mysql;
 	C创建一个新用户
  		create user cy;
 	D给新用户创建密码
  		update user set password=password('htj') where user='cy';
 	C、D创建新用户并创建密码
  		create user userName identified by password;
 	E给用户授权
  		grant all privileges on *.* to cy@'%' identified by 'htj' with grant option;
  		grant all privileges *.* to java@'%' identified by 'java' with option;//授所有的权限
 	F修改密码
 	1、使用set password就可以修改
  		语法:进入用户中就可以修改
  		set password for user@localhost = password('newPass');
 	2、使用mysqladmin来修改密码
  		语法:在dos中输入mysqladmin这个命令
  		mysqladmin -uroot -poldPassword password newPassword
 	3、修改mysql的密码
  		语法:
  		use mysql;
  		update user set password = password('newPass') where user = 'root' and host = 'localhost';

	G权限
  		grant all privileges; --全部的权限(select update delete insert的权限)
  		grant select,update on mysql.* to zyf@'%' identified by 'zyf' with option; 
  		flush privileges; --刷新授权

数据表:存放数据
字段的类型:
	int(10) 、integer(10) 整型
  	char(20)、varchar(20)  字符型
  	date(年月日)、time(时分秒)、datetime(年月日时分秒) 时间
  	float、double 浮点型
  	text 长文本
  	blob  可以存放二进制文件
建表: create table tableName (columnName columnType(length));
	例:create table user (id int(10),name varchar(20)); 
 	添加一个字段:
  		alter tableName add column 'columnName' varchar(20) null after 'id';
 	删除表的字段
  		alter table tableName drop column 'columnName';
 	修改表结构:
  		ALTER TABLE `user`
  		CHANGE COLUMN `sal` `saller`  double(5,2) NULL DEFAULT NULL AFTER `name`;
 	查看表结构:desc tableName; 
 	删除表:drop table tableName;
 	删除表里面的数据:
  		delete from tableName; 
  		truncate tableName;(可以同时删除数据库水位线)
  
主键:识别数据的唯一标识
  	CREATE TABLE `NewTable` (
  	`id`  int NOT NULL ,
  	PRIMARY KEY (`id`)
  	);
外键:一张表的外键关联另外一张表的主键
  	例:学校这张表关联学生
  	ALTER TABLE `student` ADD FOREIGN KEY (`school`) REFERENCES `school` (`id`);

插入数据--insert
  	insert into table(column1,column2 ) value ('value1',value2);
  	commit; 提交数据
修改数据--update(更新数据,需要添加条件)
  	update student set name = 'newName' where id = ?;
删除数据--delete
  	delete from student where id = 2;
查询语句
 	语法:
  	SELECT column_name,column_name
  	FROM table_name
  	[WHERE clause]
  	[OFFSET M] [LIMIT N]
最简单的查询
  	select id,name from student;
  	select name from student;
  	select * from student;
  	select id 编号, name 名字 from student;
where条件
  	select * from student where id = 1;
  	select * from student where id>3 and name='峨眉山';
like语句(模糊查询) where的子句
  	select * from student where name like '%林%';
mysql的排序
  	select * from student order by name asc;//升序排列
  	select * from student order by column desc;//降序排列
分组查询:group by
例:新建一个员工表
 	emp
  		id --员工的ID
  		name --名字
  		sal --员工的薪水
  		dept --员工的部门,部门编号
 		create table emp (
  			id int(20),
  			name varchar(20),
  			sal float(10,2),
  			dept int(20),
  			primary key id
 		);
 	查询一下有几个部门
  		select count(*) 部门的数量 from emp group by dept;//以部门分组
 		count(*)总数
 		avg(sal)平均数
 		max(sal)最大数据
 		min(sal)最小数据
 		sum(sal)合计
复杂查询
 	关联:
 	emp --雇员表
  		id --雇员的编号
  		name  --雇员的名字
  		sal --雇员的薪水
  		comm --雇员的奖金
  		dept --雇员的部门编号
 	dept --部门表
  		id --部门的编号
  		name --部门名称
  		loc --部门的地址
 	create table emp(
  		id int(10),
  		name varchar(20),
  		sal float(8,2),
  		comm float(8,2),
  		dept int(10)
 	);
	create table dept(
  		id int(10),
  		name varchar(20),
  		loc varchar(50)
 	);
 	添加主键,并设置主键自增长
  		ALTER TABLE `emp`
  		MODIFY COLUMN `id`  int(10) NOT NULL AUTO_INCREMENT FIRST ,
  		ADD PRIMARY KEY (`id`);
 	向dept表中添加数据
  		insert into dept(name, loc) value('销售部门','北京');
  		insert into dept(name, loc) value('研发部门','上海');
  		insert into dept(name, loc) value('人力资源部门','广州');
 	 
 	创建一个外键关联另外一张表的主键,并设置级联删除和更新
  		ALTER TABLE `emp` ADD CONSTRAINT `foreign_emp_dept_id` FOREIGN KEY (`dept`) REFERENCES `dept` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 	向emp表中添加数据
  		insert into emp(name,sal,comm,dept) value('刘德华','3000','100',1);
  		insert into emp(name,sal,comm,dept) value('张三丰','5000','0',3);
  		insert into emp(name,sal,comm,dept) value('和珅','1000','400',1);
  		insert into emp(name,sal,comm,dept) value('李波','2000','700',3);
  		insert into emp(name,sal,comm,dept) value('钱硕','1900','300',2);
  		insert into emp(name,sal,comm,dept) value('张飞','800','50',1);
  		insert into emp(name,sal,comm,dept) value('关羽','1100','100',2);
  		insert into emp(name,sal,comm,dept) value('刘备','1500','0',3);
  		insert into emp(name,sal,comm,dept) value('赵云','2000','100',1);
  		insert into emp(name,sal,comm,dept) value('诸葛亮','4500','200',1);
  		insert into emp(name,sal,comm,dept) value('马岱','600','700',1);
 	查询:
 	查询一下销售部门有多少个人?
 	1)select id from dept where name = '销售部门';
 	2)select * from emp where dept = 1;
 	select * from emp where dept = (select id from dept where name = '销售部门');
	
 	销售部门中工资小于3000的员工,奖金增加200元。
 	1、第一步先查询销售部门的编号
 		select id from dept where name = '销售部门';
 	2、通过销售部门查询员工的信息
  		select * from emp where dept = (select id from dept where name = '销售部门');
 	3、查询销售部门小于3000元的员工
  		select * from emp where dept = (select id from dept where name = '销售部门') and sal < 3000;
 	4、只要符合上面你的条件,奖金增加200元
  		select *,comm+200 from emp where id in
  		(select id from emp where dept = (select id from dept where name = '销售部门') and sal < 3000);

	update emp e set e.comm = (e.comm + 200) where e.id in
 	(select id from emp where dept = (select id from dept where name = '销售部门') and sal < 3000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值