MySQL数据库管理(增删改查)
MySQL数据库管理
一、数据库常用数据类型
类型 | 说明 |
int | 整型(定义整数类型数据) |
float | 单精度浮点,4字节32位,准确到小数点后六位 |
double | 双精度浮点,8字节64位 |
char | 固定长度的字符类型,定义字符类数据 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal (5,2) | 5个有效长度数字,小数点后面有2位,指定长度数组 |
Value | CHAR(4) | Storage | VARCHAR(4) | Storage Required |
' ' | ' ' | 4 bytes | ' ' | 1 byte |
'ab' | 'ab ' | 4 bytes | 'ab' | 3 bytes |
'abcd' | 'abcd' | 4 bytes | 'abcd' | 5 bytes |
'abcdefgh' | 'abcd' | 4 bytes | 'abcd' | 5 bytes |
1.char为固定长度值,不足的以空格替代。
2.varchar为可变值,最大为设置的长度值,当不足时,即为当前长度大小。
3.例如:定义char(4)和varchar(4) ,当输入ab时,char的长度就为4,虽然不足,但是不足的部分使用了空格进行补充;而varchar的长度就为3,因为ab两个字节再加一个结尾字符也算一个字节。
二、查看数据库结构
2.1 进入数据库
mysql -uroot -p密码 -u 连接数据库的用户名 -p 后面跟的是连接数据库的密码(不能有空格)
例:
1.查看当前服务器中的数据库 SHOW DATABASES; #大小写不区分,分号“;”表示结束 2.查看数据库中包含的表 USE 数据库名; SHOW TABLES; 3.查看表的结构(字段) USE 数据库名; DESCRIBE [数据库名.]表名; 可缩写成:DESC 表名;
例:
三、SQL语句
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等。
DML:数据操纵语言,用于对表中的数据进行管理。
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录。
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限。
四、创建及删除数据库和表
1.创建新的数据库 CREATE DATABASE 数据库名; 2.创建新的表 CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]); #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。 例: CREATE DATABASE kgc; USE kgc; CREATE TABLE KY08 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT '',PRIMARY KEY (id)); DESC KY08; 3.删除指定的数据表 DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名 4.删除指定的数据库 DROP DATABASE 数据库名;
|表字段名|说明|
|field|字段|
|type|类型|
|not null|不允许为空|
|default ‘’|默认为空|
|primary key|主键(一般选择没有重复且不为空的字段)|
例:
创建库
创建表并写入内容
删除表
删除库
五、管理表中的数据记录
1.向数据表中插入新的数据记录 INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...); 例: INSERT INTO KY08(id,name,score,passwd) values(1,'zhangsan',70.5,PASSWORD('123456')); #PASSWORD('123456'):查询数据记录时,密码字串以加密形式显示;若不使用PASSWORD(),查询时以明文显示。 INSERT INTO KY08 VALUES(2,'lisi',90.5,654321); SELECT * FROM KY08; #查询表的数据记录 2.查询数据记录 SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式]; 例: SELECT * FROM KY08; SELECT id,name,score FROM KY08 WHERE id=2; select name from KY08\G #以列表方式竖向显示 select * from KY08 limit 2; #只显示头2行 select * from KY08 limit 2,3; #显示第2行后的前3行 3.修改、更新数据表中的数据记录 UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式]; 例: UPDATE KY08 SET passwd=PASSWORD('') WHERE name='zhangsan'; UPDATE KY08 SET name='wangxiaoer',passwd='' WHERE id=3; 4.在数据表中删除指定的数据记录 DELETE FROM 表名 [WHERE 条件表达式]; 例: DELETE FROM KY08 WHERE id=4;
例:
插入表中数据
查看数据记录
修改,更新数据表中的数据记录
在数据表中删除指定的数据记录
六、修改表名和表结构
1.修改表名 ALTER TABLE 旧表名 RENAME 新表名; 例: ALTER TABLE KY08 RENAME CLASS08; ALTER TABLE CLASS08 RENAME KY08; 2.扩展表结构(增加字段) ALTER TABLE 表名 ADD address varchar(50) default '地址不详'; #default '地址不详':表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用 3.修改字段(列)名,添加唯一键 ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key]; 例: ALTER TABLE KY08 CHANGE name user_name varchar(10) unique key; #CHANGE可修改字段名、数据类型、约束等所有项。 4.删除字段 ALTER TABLE 表名 drop 字段名; 例: ALTER TABLE KY08 drop passwd; 案例扩展: use kgc; create table if not exists info ( id int(4) zerofill primary key auto_increment, #指定主键的第二种方式 name varchar(10) not null, cardid int(18) not null unique key, hobby varchar(50));
if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建 int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001 auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次 unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键 not null:表示此字段不允许为NULL
例:
修改表名
扩展表结构(增加字段)
修改字段(列)名,添加唯一键
删除字段