mysql命令行没有mysql数据库_mysql数据库基本操作命令行

创建数据库:

creat database choose;

查询数据库

show databases;

显示当前数据库中的所有表的信息

show tables;

显示指定数据库中的所有表信息

mysql> show tables from db3;

查看指定数据库的相关信息

show create database choose;

选择一个数据库

use choose;

查看当前数据库

select database();

删除数据库

drop database choose;

删除表

mysql> drop table A;

设置数据库使用的字符集

set names utf8;

查看表的详细设计信息

describe stu2;

查看表的内容(name和tel都是表中的属性)

select name,tel from stu2;

这里如果出现了:

Empty set (0.00 sec)

说明查询的表中的该属性是空的,还没有插入数据

向表中插入内容(name和tel是表中的属性,dong和456是插入的属性值)

mysql> insert into stu2(name,tel)

-> values ('dong',456);

在已有的表中添加列

mysql> ALTER TABLE one

-> add tall int;

删除表中的列

mysql> alter table A

-> drop taa;

在表中添加枚举(enum只支持整数,我一开始定义的是男、女两个中文,踩了好大一个坑,后来发现定义整数是可以的)

create table six(

-> name varchar(5),

-> sex enum('1','2')

-> );

修改表中列的数据类型

alter table test1-> modify column name varchar(20);

修改表的名字

mysql> alter table stu rename to stu_new;

将表转移到其他数据库中

mysql> alter table stu2 rename to db3.stu2;

表记录的修改

update test1-> set name='qq' where(name='j');

表记录的删除

DELETE FROM test1-> WHERE (name='liu');

设置主键的两种方式

法一:

mysql> create table C(

-> id int primary key,

-> name varchar(10));

法二:

mysql> create table D(

-> id int,

-> num int,

-> name varchar(10),

-> primary key(id,num));

取出表中列的重复结果

法一:

mysql> select distinct department from student_info;

法二:

mysql> select department from student_info

-> group by(department);

查看mysql编码格式

show variables like 'character%';

设置编码格式

set character_set_client=utf8; // 设置客户端的编码为utf8

set character_set_connection=utf8; //

set character_set_database=utf8; //

set character_set_results=utf8; //

set character_set_server=utf8; //

set character_set_system=utf8; //

修改表的编码格式

alter table animal charset=utf8;

删除表中记录

truncate table one;

取出表中的年份(属性bir1必须是data类型的才能取出来)

select year(bir1) from rq;

使用枚举enum设置类型

create table my(

-> sex enum('男','女')charset utf8);

使用like运算符与通配符实现模糊查询(匹配a开头的属性)

mysql> select * from stu

-> where name like 'a%';

使用limit限制记录数:例如查询从0开始的10条记录.该命令在分页功能中很有用

select * from table limit 0,10;

按照单个列的值进行排序:order by 列名 asc(升序)|desc(降序)

mysql> select number from student_info

-> order by number desc;

通配符%和_的使用:%表示匹配任意一个字符串,_表示匹配一个字符

刘%:匹配姓刘的名字

刘_:匹配姓刘,且长度为2的名字

常用聚合函数:

sum() 累加求和

avg() 请均值

count(*) 统计记录的行数

count(列名)统计指定列的行数

max() 最大值

min() 最小值

求表中某列的平均值

select avg(grade) from stu;

连续使用聚合函数

mysql> select sum(grade),max(grade),min(grade),avg(grade) from stu;

使用聚合函数时给属性列设置别名

select sum(grade) as '中文' from stu;

通过group by 字句对记录分组

select avg(grade) from stu

-> group by sex;

通过group by 字句根据记录属性分组

selectsex,count(num) from stu group by sex;

having子从句的使用

mysql> select num,avg(grade) from stu_score

-> group by num

-> having avg(grade)<60;

使用order by 对字句进行排序

升序

select * from stu_score

-> order by(grade);

降序

select * from stu_score

-> order by(grade) desc;

使用limit查询指定记录

select num,name from stu

-> order by(grade) desc

-> limit 1;

基于派生表的查询from型子查询,注意点:派生表一定要指定一个别名,否则会报错

select * from (select name from stu where grade>60) as s1;

广义笛卡尔积

select * from stu,score;

去除笛卡尔积中无效的选项后的结果

select * from stu,score where stu.num=score.num;

等值连接

select stu.* from stu,score where c_id=1 and stu.num=score.num;

左连接语法格式

select stu.num,name,course,stu_score.grade from stu left join stu_score on stu.num=stu_score.num;

获得系统的当前时间

mysql> select now();

获得系统的当前年份

mysql> select year(now());

不相关子查询

SELECT number, name, id_number, major FROM student_info WHERE EXISTS (SELECT * FROM student_score WHERE student_score.number = student_info.number);

使用自连接简化子查询的方式

select * from student_info as s1,student_info as s2

-> where s1.major=s2.major and s1.name='史珍香';

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值