数据库的增删改
--显示当前时间:
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