数据库的增删改


--显示当前时间:

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