基本操作
1、在Windows命令提示符下运行:
启动MySql服务:net start mysql
停止MySql服务:net stop mysql
卸载:sc delete mysql
一般要先启动MySQL服务器
注意:运行如上命令时,有时会出现“发生系统错误5 拒绝访问”,这是因为当前用户的操作权限太低了,需要我们要以管理员身份来运行cmd程序。同时还要注意服务名称是否是mysql。
2、MySQL登陆
mysql -hlocalhost -u username -puserpassword
注意:密码如果写在命令行的时候一定不能有空格。
3、MySQL常用命令:
放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s
创建库表
1、操作数据库
创建数据库:create database dbname;
显示所有数据库:show databases;
使用MySQL命令
show create database dbname;
可以查看数据库的相关信息(例如MySQL版本ID号、默认字符集等信息)。
选定默认数据库:use dbname;
删除数据库,使用SQL语句 drop database dbname;
2、操作数据库表的结构:
创建数据库表之前必须先使用数据库。
create table students(
id int unsigned not null auto_increment primary key,
name varchar(8) not null,
sex char(4) not null,
age int unsigned not null
);
使用MySQL命令“desc table_name;”即可查看表名为table_name的表结构。
mysql> desc students;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(8) | NO | | NULL | |
| sex | char(4) | NO | | NULL | |
| age | int(10) unsigned | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
使用MySQL命令“show create table table_name;”查看名为table_name表的详细信息。
mysql> show create table students;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(8) NOT NULL,
`sex` char(4) NOT NULL,
`age` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
- 添加列
alter table 表名 add 列名 列数据类型 [after 插入位置];
在名为age的列后面插入列birthday:
alter table table_name add birthday date after age;
添加一列s,放在最前面
alter table students add s varchar(22) first ;
- 修改列
alter table table_name change 列名称 列新名称 新数据类型;
将表的tel列改名为telphone
alter table table_name change tel telphone char(13) not null;
·如果只对字段的数据类型进行修改
alter table 表名 modify 字段名 新数据类型; - 删除列
alter table table_name drop 列名称;
- 重命名表
alter table table_name rename new_name;
- 删除整张表
drop table 表名;
3、查看字符集
查看当前支持的MySQL字符集
show charset;
4、使用MySQL命令
show variables like ‘character%’;
即可查看当前MySQL服务实例使用的字符集。
a、MySQL提供下列MySQL命令可以“临时地”修改MySQL“当前会话的”字符集。
set character_set_client = gbk;
set character_set_connection = gbk;
set character_set_database = gbk;
set character_set_results = gbk;
set character_set_server = gbk;
查询语句
1、模糊查询like
在where 后面使用like
通配符:
% 任意字符
_ 单个字符
2、order by 排序
order by price //默认升序排序
order by price desc //默认降序排序
order by price asc //升序排序
order by rand() //随机排序
3、分组查询 group by
一般情况下,group需与统计函数(聚合函数)一起使用才有意义。
//通过name进行分组
select name,count(*) from student group by name;
//将name=’lisi’分为一组,将其余的分为一组
select count(*) from student group by name='lisi';
4、Having 指定分组统计条件(一般与group by一起使用!)
select name,count(*) from student group by name having count(*)>2;
注意where和having的区别:
where只能对表中的字段名进行筛选
having一般对查询结果进行筛选(也可以直接对字段名进行筛选)
5、sql函数
组函数(聚合函数) 功能描述
用于字符、数值、日期型数据的列函数
MAX(column) 列中最大值
MIN(column) 列中最小值
COUNT(*) 表中行的数量
COUNT(column) 列不为null的行数
COUNT(distinct column) Column指定列中相异值的数量
用于数值数据的列函数
SUM(column) 列中所有值的总和
AVG(column) 列中所有值的平均数
表的操作
1,复制表
复制表结构
create table 新表名 like 原表名;
复制表的内容
INSERT INTO 新表名 select * from 原表名;
2,向表中插入数据
insert into students values(5,'名字5','女',19);
向表中插入多条记录
insert into students (name,sex) values('xiaoming','nan'),('xiaohong','nv');
使用insert….select插入结果
insert into ss (name,sex) select name,sex from students where id=5;
3,替换表中的数据
replace into ss (id,name,sex) values('1','aa','男'),('2','bb','男');
如果主键id为1或2不存在就相当于
insert into ss (id,name) values('1','aa'),('2','bb');
如果存在相同的值则不会插入数据 。
4, 更新表中的数据
UPDATE ss set name='lala' WHERE name='aa';
若省略了where子句,则表示修改表中的所有记录。
没完待续。。。。。。