数据库的基本操作

一:库的操作

1.show databases;   //注意别忘记database后面的“s”  展示所有的库

2.create database hao_01; //数据库名的命名尽量使用下划线//创建一个hao_01的库

3.drop database hao_01; //删除这个库

-----------------------------------------------------------------

show  tables;查询该库的表

desc cyd_student;查询表结构

1.alter table cyd_student rename cyd_student1;  //修改表名

2.alter table cyd_student change id s_id int(20);  //修改表字段

3. alter table cyd_student1 add class int(3) not null first;//在第一个字段前加一个‘class’字段

4.alter table dcs modify id int(8) first ;可以实现调整表字段的位置;这是将‘id’字段放在最前面

select * from student; //查出表中所有数据

 mysql> create table cyd_student(id int(4) primary key,name varchar(20) not null,sex int(2),age int(3),mobilephone_number int(12));

insert into student(name,sex,age,class,number)values('test',1,30,1603,13424302636); //插入一条记录

Insert into dcs_bak(name,age,sex,score)values('qqqq',34,1,77),('wwww',34,1,77),('eeeee',34,1,77);  //插入多条记录

desc cyd_student;查询表结构


2. select * from student; //查出表中所有数据

insert into hao01_s (name,age)values('jjh3',29)  //表里面添加值

update hao01_s set name=‘jjh2' where id=3;  //更新表,改值

select // 函数,选取

2. select * from student; //查出表中所有数据

3. select s_id,sex,name from cyd_student; //查出表中具体字段的数据

4.select * from student order by id desc; //降序查询

select * from student order by id asc;  //升序查询

删除主键约束:alter table 表名 drop primary key;

格式:update 表名 set 值 where 条件

5. update cyd_student1 set name='cyd' where s_id=1;  //该指定字段的值,这里改的是‘name‘字段的值

6. update cyd_student1 set age=age+5;  //将年龄加大5岁

7. select * from student where sex<>1;

select * from student where sex!=1;

select * from student where sex  not in(1);

//查出性别不为1的所有数据

简单函数

8.select distinct(name )from student where sex<>1; //查出性别不为1的且不重复的姓名的数据

8.select distinct(name),age from student where sex=0 or sex=2;

select distinct(name),age from student where sex=0 and sex=2;

9.select count(id) from student where age between 31 and 32; //统计出年龄在31岁到32岁之间的学生人数

#select count(id) from student where age>=31 or age<=25;    --20

10. select * from student where id limit 0,10; //查出从第一行开始计算,共十行的记录

11. select sex as "性别",count(sex) as "各性别总人数" from student group by sex; //根据性别分组查班上男生女生总人数各是多少

12. select * from dcs where id limit 0,3;从第一行开始共统计3行;

13. select * from dcs where class is null;查询班级为空的学生信息

14. select * from dcs where class is not null;查询班级不为空的学生信息

注:select * from student where number=1342430263 or 1=1; //安全性测试的SQL注入,(一旦在文本框内输入该SQL命令,若代码未过滤,则会显示出所有的数据)

1.where 不能放在GROUP BY 后面

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数比如SUM(),AVG()等,使用where条件显示特定的行。

2.having 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE

   having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。





忘记密码,在外vim /etc/my.cnf

在第四行输入skip-grant-tables


3.1如何给普通的数据库用户赋予相应的权限(如增删改查):

Mysql -uroot -p    //进入root账户

1.使用root账号登录,输入root用户的密码:******

2.进入mysql数据库:use mysql;

3.查询mysql数据库服务器已经创建了哪些用户:select host,user from user;

3.创建用户但是未授权(方法一)

insert into user (Host,User,Password)values('localhost','chen',password('123456'));创建用户

创建用户后需要刷新下:flush privileges

4.创建用户后进行授权(方法二)

grant select,update,delete on *.* to ‘chen’@'localhost' identified by '123123' with grant option;

grant all privileges on *.* to ‘root’@'%' identified by '123123';

flush privileges

show grants for 'chen'@'%'; //查看数据库的指定授权用户的权限

revoke all on *.* from sss@localhost ;//取消所有权限

delete from user where user='zhongguo'and host='localhost';删除用户

update user set password=password("test") where user='root';

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

service iptables stop   //关闭防火墙

grant all privileges on *.* to 'root'@'%' identified by '123456';//给root给全部权限

Flush privileges   //刷新特权

show databases;  

show tables from hao01;   

create table stu1 like stu;   

备份student表中的所有数据:

create table dcs15 like dcs;创建表且表字段与‘dcs’一样

insert into dcs15 select * from dcs;将表‘dcs’的数据插入表‘dcs15’

insert into dcs150(id,name) select id,name from dcs;指定字段插入,如果dcs50有数据是不能插入,需要重新创建一个表;

在Xshell里面运行

1.  Mysqldump -uroot -p hao02

然后在xshell里面有了一个hao02.sql 文件

然后将这个文件发送到电脑桌面SZ hao02.sql   // SZ是将文件传出去

[if !supportLists]2. [endif]rz  //将电脑的文件传到xshell里面。

   Rz hao02.sql

然后在shell里将hao02.sql 传到mysql 里面

Mysql -uroot -p hao02>hao02.sql;

整理语句的使用:

Insert  into............. from.........//插入

Update.........set............where.........//修改表格里面的数据

Select..........from..........where........//展示选出的表格

Select..........from.............group  by ..........

select max(math) from dcs group by class;   //按班级查出数学最高分;

1.select * from stu where id limit 3,2;   //id从3行开始取两行

2.select id,class,name,english,math,chiese from stu where math>80;

//前面select和from中间的是要显示的因素,全显示用*代替。

后面where后面的条件,用于约束条件。

你可能感兴趣的:(数据库的基本操作)