zoukankan      html  css  js  c++  java
  • mysql 数据库操作

    1.  mysql -uroot -pqwe123    (进入mysql)  -u = user      -p = password

    2.  q退出

    3.  select user();  查看当前用户

    创建用户的三步:

      1.  create user "用户名"@"%" identified by "密码"  ;  (创建用户," ; "不能少)

      2.  grant all on *.* to "用户名"@"%";

      3.  flush privileges;

    库操作:

      1.  select database(); 查看当前库

      2.  show databases;  查看所有库

      3.  create database  名称 ;   创建一个库,若已存在,则报错

      4.  create database if not exists 名称;      同上,但存在不报错

      5.  drop database [if exists] 名称 ; 删除库

      6.  use 名称;  使用库,进入库
    表操作:

      1.  show tables;  查看所有表

      2.  create talbe name1(

            id  int,

            name   varchar(20)

          );            创建表,要把字段也定义

      3.  drop table 表名;      删除表

      4.  desc 表名;    查看该表

      5.  show create table 表名 ;  同上

      6.  增加字段

         alter table 表名 add sex char(20) first;

         alter table 表名 add sex char(20) after name;

      7.  删除字段

         alter table 表名 drop sex;  

      8.  修改字段:

         alter table 表名 modify sex int;  (修改数据类型)

         alter table 表名 change id sex char(4);    (修改字段名)

      

      9.  修改表名:

         alter table 表名 rename 新表名;

      数据操作:

        1. 增加数据:

           insert into 表名( id ,name) values(1,"haha"), (3,"bebe");    插入数据,多条

           insert into 表名( id ,name) value(1,"haha");  插入单条

           insert into 表名  set id = 2,name = "qiugei"  插入,不常用,用上面

        2.  查询数据:

           select * from 表名;    查看该表的所有数据

           select * from T1 where id = 1;    根据条件查询数据,where 筛选条件

        3.  修改数据:

           update T1(表名) set name = "qiaqia"  where id = 1;  修改数据

        4.  删除数据:

           delete from T1 where name = "dada";    删除数据

        5.  数据约束:

            create table test(

                id int primary key auto_increment,     主键,自增长约束

                name varchar(20) not null,          非空约束

                number int  unique key,          唯一约束

                sex char(4) default "man",          默认约束

                 f_id int  not null,            外键约束,下面是外键定义

                 [constraint f_name] foreign key(f_id) references test2(id)  该表的外键与test2表的id字段关联

                 )

            联合主键:

            create table test3(

              id int not null,

              c_id  int,

              primary key(id,c_id))

       查询操作:

          1.  select * from student where name like "王%";    查询name以王字开头的数据

          2.  select * from student where name like "王_";    查询name以王字开头后面只有一个字符的

          3.  排序:

             select * from student where name like "王%"  order by class_id; 以class_id字段升序

             select * from student where name like "王%"  order by class_id desc; 以class_id字段降序

          4.  限制输出:

             select * from test1 limit 2 ;    只查询出前2行数据

             select * from test1 limit 2,4;    从第三行开始,往下找4条数据

           5.  聚合函数:

              MAX  求最大

              MIN   求最小

              SUM    求和

              AVG    求平均

              ROUND    四舍五入

              COUNT    统计次数

              GROUP BY    分组

                select class,group_concat(name) from student group by class;  以班级分组,并罗列出每组里面分别的name

                select count(*) from test1 group by class_id;      把class_id相同的数据分为一组

                select count(class_id) from test1 group by class_id having count(class_id) = 2;    把class_id个数为2的数据查出来

            6.子查询:

               select *from test1 where class_id > (select avg(class_id) from test1);    查询class_id大于class_id 平均值的数据

               select * from test1 where class_id in (select class_id from test2 where name = "计算机" )    用于搜索一个本表没有的字段

          7.  表连接 :

            内连接:

              select * from test1 inner join test2     无条件内连接

              select * from test1 inner join test2  on test1.c_id = test2.c_id   有条件内连接

            外连接(必须有条件):

            左外:select * from test1 left join test2 on test1.c_id = test2.c_id;

            右外:   select * from test1 right join test2 on test1.c_id = test2.c_id;

            多表连接 :
              select * from test1

              left join test2 on test1.c_id = test2.c_id

              left join test3 on test2.s_id = test3.s_id;

              多行写,可读性较高

            快捷储存一张表:

              create table tb1(
               select * from test1 right join test2 on test1.c_id = test2.c_id

                );

              调用:

              select * from tb1;

        事务操作(必须确认才能加入数据):

          1.  start transaction;   开启事务

          2.  insert .....      插入数据

          3.  rollback;      回滚操作

          4..  commit;      确认

        表关系:

            

  • 相关阅读:
    数据结构第四篇——线性表的链式存储之双向链表
    基本概念之引用赋值需要注意什么?
    基本概念之将引用作为函数的参数有哪些特点?
    基本概念之什么是引用?
    基本概念之模板类有什么优势?
    我的第一篇博文
    为CentOS 6 配置本地YUM源
    为CentOS 6 配置本地YUM源
    poj 1990 MooFest
    [置顶] 学生信息管理系统“重复设置”问题
  • 原文地址:https://www.cnblogs.com/cxhzy/p/9895770.html
Copyright © 2011-2022 走看看