美文网首页
数据库的基本操作

数据库的基本操作

作者: hao0_0 | 来源:发表于2019-05-08 22:40 被阅读0次

    一:库的操作

    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后面的条件,用于约束条件。

    相关文章

      网友评论

          本文标题:数据库的基本操作

          本文链接:https://www.haomeiwen.com/subject/jouboqtx.html