MySQL数据库的简单操作

1、启动数据库:net start mysql

2、登陆数据库

  mysql [-h主机地址(客户端和服务器在同一台机器上,因此输入localhost或IP地址127.0.0.1都可以,如果本地登陆可以省略登此参数)] -u用户名(一般为是root) -p密码

3、查看所有数据库:show databases;

4、使用某数据库:use 数据库名;

5、创建数据库(如果没有重名数据库存在):create table [if not exists] 数据库名;

6、查看数据库内的表

  show tables;(此方法需要使用某个数据库后) 

7、创建数据表

  create table [if not exists] `表名`(

      `列名1`    列类型 [属性][索引][注释],

       `列名2`    列类型 [属性][索引][注释],

       ... ...

       `列名n`    列类型 [属性][索引][注释]

   )[表类型][表字符集][注释]

   注:a、` `:如果名字是关键字,需要用` `引起来

      b、列类型:规定数据库中该列数据类型,常用类型如下:        

        数值类型:

            tinyint:非常小的数据    int:标准整数    double:双精度浮点数

                decimal:字符串形式的浮点数,decimal(m,d)数值一共m位,小数后有d位,用于货币

        字符串类型:

            text:文本串    char:固定长字符串长度    varchar:可变字符串

        日期和时间型数值类型:

            datetime:日期值YY-MM-DD h:m:s    time:时间值HH:MM:SS

        Null值:没有值

      c、属性:即字段的属性或约束

         unique key:防止数据插入的时候重复

        unsigned:无符号,声明该数据列不允许有负数

        zerofill:0填充,不足位数的用0来填充

        auto_increment:自动增长的,每添加一条数据,自动在上一个记录数上加1;通常用于设置主键(唯一,区别),且为整数类型;

       auto_increment=自增列的初始值(改变当前表的初始值);

          set @@auto_increment_increment=步长(改变所有包含自增列的数据表的步长)

        Null:没有插入该列数值

        not null:该列必须有值

        default 默认的值:设置默认值

        primary key:创建主键 或 命令行用add primary key命令添加主键

     d、注释    
        comment ‘注释内容’;

     e、表类型     

       常用MyISAM和InnoDB

         查看mysql所支持的引擎类型(表类型):show engines

         查看默认引擎:show variables like ‘storage_engine’

         写入格式:engine=innodb(创建表时一般用innodb)
     f、表字符集

        default charset=utf8/gbk...:设置表的字符集

       如果字段名/列名为汉字需要将表的字符集设为gbk

8、查看及更改输出窗口使用的字符编码:

  Show variables like ‘char%’;查看输出窗口使用的字符编码 

    

  从上图可以看出Mysql中有六处字符集,其中database、server、system(永远无法修改)三处与服务器端相关;其他与客户端相关,client:客户端使用的字符集,connection:连接数据库的字符集设置类型,results:数据库给客户端返回时使用的字符集

  Set character_set_results=gbk;在操作系统是中文操作系统时,默认的字符集是gbk,因此将输出窗口使用的字符编码改成gbk可正常显示中文

9、向数据表中增加数据(增)   

  insert into 表名(列名) values(列名对应的数据);:插入数据

  insert into 表名(列名) values(列名对应的数据1),(列名对应的数据2)...;:插入多个数据

  insert into 表名1(列名) select (表2中加到表1的数据的列名) from 表2;:将表2中某列的数据加到表1中

            

10、将数据表中的数据删除(删)

  delete from 表名 where 筛选条件(可用and添加多个筛选条件;如果不加筛选条件,会将数据表中的数据清空)

    

  truncate table 表名;---将数据表清空到最初建表的样式

11、将数据表中的数据进行修改(改)

  update 表名 set 字段名=”修改的内容” [where 筛选条件];

          

    update A set A.=(select B. from B where A.关联列=B.关联列);---将一个表的一列值替换成另一个表的一列值

12、查询表内所有记录:

  desc 表名;(查看表的结构)

  select * from 表名 [where 筛选条件];

  select * from 表名\G;---以一定格式展示表里的所有查询记录

  select * from 数据库名.表名;---可以在不使用该数据库情况下查看数据库里的内容

  select * from 表名 limit [读取数据的起始位置,]数量;---分页查询

    

  select 列名 from 表名1 union select 列名 from 表名2; ---将两个表中数据类型一样的列1和列2拼接成一列,并把重复的数据去除

  select 列名 from 表名1 union all select 列名 from 表名2;---将两个表中数据类型一样的列1和列2拼接成一列,但把重复的数据保留

  select 列名 from 表1 left join 表2 on 表1.关系字段=表2.关系字段;---连表查询,但表1中与表2,关系字段为空时,仍然显示

  select 列名 from 表1,表2 where 表1.关系字段=表2.关系字段;---连表查询,但表1中与表2 关系字段为空时,仍然显示

  select 列名 from 表1 inner join 表2 on 表1.关系字段=表2.关系字段;---连表查询,但表1中与表2 关系字段为空时,不会显示

  select 列名 as 新名字 from 表名;---在查询时给列重命名

    

  select 列名 from 表 order by 列名 [asc];---将列从小到大排序

    

  select 列名 from 表 order by 列名 desc;---将列从大到小排序

    

  select 列名 from 表 order by 列1 asc,列2 desc;---根据列1从小到大排序,如果相同按列2从大到小排序

13、聚合函数

  select count(字段名) from 表名 [where 筛选条件];---查看行数

  select distinct 字段名 from 表名 [where 筛选条件];---去掉重复数据

    

  select max(字段名) from 表名 [where 筛选条件];---查看最大值

    

  select min(字段名) from 表名 [where 筛选条件];---查看最小值

  select avg(字段名) from 表名 [where 筛选条件];---查看平均值

  select sum(字段名) from 表名 [where 筛选条件];---查看该字段的和

14、分组:

  select [字段名,]聚合函数(字段名) [as 新的字段名] from 表名 group by 字段名;

   例:select gender,count(stname) as n from stu_info group by gender;

15、修改数据表

  alter table 表名 rename to 新表名;---修改表名

    

  alter table 表名 change 列名 新的列名 数据类型;---修改表字段的字段名

    

  alter table 表名 modify 列名 新的数据类型;---修改表字段的数据类型或属性

    

  alter table add 字段名 数据类型 [属性];---添加新的字段

    

  alter table drop 字段名 数据类型 [属性];---删除字段

    

注: 1、文章内中括号([])内的内容可不写。

   2、表中的所有列可用*表示,但最好不要用,而是把所有列名都写一遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值