Mysql操作(不定时更新)

Mysql操作

MySQL数据库中的表类型一般常用两种:MyISAM和InnoDB
区别:MyISAM类型的数据文件有三个frm(结构)、MYD(数据)、MYI(索引)
     MyISAM类型中的表数据增 删 改速度快,不支持事务,没有InnoDB安全。

      InnoDB类型的数据文件只有一个 .frm
      InnoDB类型的表数据增 删 改速度没有MyISAM的快,但支持事务,相对安全。

SQL语句快捷键

语句注解使用率
\G格式化输出★★★
\s查看服务器端信息
\c结束命令输入操作
\q推出当前sql命令行模式
\h查看帮助

连接数据库

#语法:mysql -h 主机名 -u 用户名 -p密码 库名
    mysql        \    #采用匿名账号和密码登录本机mysql数据库
    mysql -h loclahost -u root -proot    \     #采用root账号和密码登录本机mysql数据库
    mysql -u root -p mydb              \         #直接进入mydb数据库的方式登录

数据库的数据类型

MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。

数值类型:
    *tinyint(1字节) 0~255  -128~127
    smallint(2字节)
    mediumint(3字节)
    *int(4字节)
    bigint(8字节)
    *float(4字节)   float(6,2)
    *double(8字节)  
    decimal(自定义)字串形数值

字串类型
    普通字串
    *char  定长字串      char(8)  
    *varchar 可变字串 varchar(8)

    二进制类型
    tinyblob
    blob
    mediumblob
    longblob

    文本类型
    tinytext
    *text      常用于<textarea></textarea>
    mediumtext
    longtext

    *enum枚举
    set集合

时间和日期类型:
    date  年月日
    time  时分秒
    datetime 年月日时分秒
    timestamp 时间戳
    year 年

NULL值
    NULL意味着“没有值”或“未知值”
    可以测试某个值是否为NULL
    不能对NULL值进行算术计算
    对NULL值进行算术运算,其结果还是NULL
    0或NULL都意味着假,其余值都意味着真

MySQL的运算符:
    算术运算符:+ - * / % 
    比较运算符:= > < >= <= <> != 
    数据库特有的比较:in,not in, is null,is not null,like, between and 
    逻辑运算符:and or not

库的操作

语句注解使用率
show databases;查看当前用户下的所有数据库★★★
create database [if not exists] 数据库名;创建数据库★★
use test;选择进入test数据库★★
select database();查看当前所在的数据库位置
drop database [if exists] 数据库名;删除一个数据库
show create database mydb\G;查看创建mydb数据库的建库语句

表的操作

语句注解使用率
show tables;查看当前库下的所有表格★★★
desc tb1;查看tb1的表结构★★
create table demo(name varchar(16) not null,age int);创建demo表格★★
drop table if exists mytab;尝试删除mytab表格
show create table 表名\G;查看创建表的建表语句

建表语句格式

建表语句格式:
 create table 表名(
   字段名 类型 [字段约束],
   字段名 类型 [字段约束],
   字段名 类型 [字段约束],
   ...
  );

mysql> create table stu(
    -> id int unsigned not null auto_increment primary key,
    -> name varchar(8) not null unique,
    -> age tinyint unsigned,
    -> sex enum('m','w') not null default 'm',
    -> classid char(8)
    -> );
Query OK, 0 rows affected (0.05 sec)

表的字段约束

unsigned 无符号(正数)
zerofill 前导零填充
auto_increment  自增
default 默认值
not null  非空
PRIMARY KEY 主键 (非null并不重复)
unique 唯一性   (可以为null但不重复)
index 常规索引

数据的操作

    --添加一条数据
    mysql> insert into demo(name,age,sex) values('zhangsan',20,'w');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into demo values('lisi',22,'m'); --不指定字段名来添加数据
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into demo(name,age) values('wangwu',23); --指定部分字段名来添加数据
    Query OK, 1 row affected (0.00 sec)

    --批量添加数据
    mysql> insert into demo(name,age,sex) values('aaa',21,'w'),("bbb",22,'m');
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 0

    mysql> select * from demo; --查询数据

    mysql> update demo set age=24 where name='aaa';  --修改
    Query OK, 1 row affected (0.02 sec)
    Rows matched: 1  Changed: 1  Warnings: 0

    mysql> delete from demo where name='bbb';  --删除
    Query OK, 1 row affected (0.00 sec)

修改表结构

格式: alter table 表名 action(更改选项);
更改选项:
    1. 添加字段:alter table 表名 add 字段名信息
        例如:
            -- 在user表的最后追加一个num字段 设置为int not null
            mysql> alter table user add num int not null;

            -- 在user表的email字段后添加一个age字段,设置int not null default 20;
            mysql> alter table user add age int not null default 20 after email;

            -- 在user表的最前面添加一个aa字段设置为int类型
            mysql> alter table user add aa int first;

    2. 删除字段:alter table 表名 drop 被删除的字段名
        例如:-- 删除user表的aa字段
             mysql> alter table user drop aa;

    3. 修改字段:alter table 表名 change[modify] 被修改后的字段信息
        其中:change可以修改字段名, modify 不修改
        例如:
        -- 修改user表中age字段信息(类型),(使用modify关键字的目的不修改字段名)
        mysql> alter table user modify age tinyint unsigned not null default 20;
        -- 修改user表的num字段改为mm字段并添加了默认值(使用change可以改字段名)
        mysql> alter table user change num mm int not null default 10;

    4. 添加和删除索引
        -- 为user表中的name字段添加唯一性索引,索引名为uni_name;
        mysql> alter table user add unique uni_name(name);
        -- 为user表中的email字段添加普通索引,索引名为index_eamil
        mysql> alter table user add index index_email(email);
        -- 将user表中index_email的索引删除
        mysql> alter table user drop index index_email;

    5. 更改表名称:
        ALTER TABLE 旧表名 RENAME AS 新表名

    6. 更改AUTO_INCREMENT初始值:
        ALTER TABLE 表名称 AUTO_INCREMENT=1

    7. 更改表类型:
        ALTER TABLE 表名称 ENGINE="InnoDB"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值