数据库的增删改
–显示当前时间:
select now();
–创建students表(id, name, age, high, gender, cls_id)
create table students ( id int unsigned (默认:not null) primary key auto_increment(自增), name varchar(20), age tinyint unsigned default 0, high decimal(5,2), gender enum('男', '女', '中性', '保密') default '保密', cls_id int unsigned );
–查看表结构:
desc student; MariaDB [testdb]> desc students; +--------+-------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------------------------------+------+-----+---------+----------------+ | id | tinyint(3) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | NO | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | high | decimal(5,2) | YES | | NULL | | | gender | enum('男','女','中性','保密') | YES | | 中性 | | | cls_id | tinyint(3) unsigned | YES | | NULL | | +--------+-------------------------------------+------+-----+---------+----------------+
字段的增删改:
— 修改表-添加字段
–alter table 表名 add 列名 类型;
alter table students add birthday datetime;
— 修改表-修改字段:不重命名版
– alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date;
— 修改表-修改字段:重命名版
– alter table 表名 change 原名 新名 类型及约束;
alter table students change birthday birth date;
— 修改表-删除字段
– alter table 表名 drop 列名;
alter table students drop birth;
— 删除表
– drop table 表名;
drop table students;
库的增删改查:
#查看数据库
show databases;
#查看创建数据库状态
show create database testdb;
#使用哪个库
use testdb;
#创建数据库
create database test03 #默认是拉丁字符集 create database testdb character set utf8;
#删除数据库
drop database testdb;
#修改数据库默认字符集
alter database 库名 default character set utf8; #alter改变数据库结构/表结构
数据的增删改:
增加:
–全列插入
–insert into 表名 values (..)
eg:insert into students values (0(默认),'小明',19,188.999,'男', 1); --主键字段默认 可以用 0 null default 来站位
–部分插入(注意约束)
–insert into 表名(字段,字段…) values (..)
eg:insert into students(id, name, age) values (0,'绿帽子',19);
–部分插入(多条记录)
insert into students(id, name, age) values (0,'绿帽子',19),(0,'小跳蚤',21);
修改:
–update 表名 set 列1=值1, 列2=值2… where 条件(还可以范围eg:id>6);
update students set age=100 where id=1; update students set age=100,cls_id=77 where id=1; eg:update students set name='小飞',age=23 where id=9(或name='黄飞鸿2');
删除:
– delete from 表名 #清空表
— 物理删除
– delete from 表名 where 条件
delete from students where name='黄飞鸿'; delete from students where cls_id=88;
— 清空表数据
truncate students; #无法恢复数据,并且清空自增 delete from students; #在一定条件下可以恢复数据,不会清楚自增
— 逻辑删除
– 用一条字段来表示 这条信息是否已经不能在使用了
– 给students表添加一个is_delete字段 bit 类型
alter table students add is_delete bit default 0;
其他:
–default charset=utf8 默认字符集(按照库来的)
–auto_increment(自增)
MyISAM与InnoDB区别:
–两种类型最主要的区别就是InnDB支持事物处理与外键和行级锁
MyISAM查询机制高于InnoDB
InnoDB安全级别高于MyISAM