mysql5

19、添加删除主键
添加主键:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type](字段名称,…)
–添加主键
CREATE TABLE IF NOT EXISTS test12(
id INT
);
DESC test12; ----不是主键
ALTER TABLE test12 ADD PRIMARYY KEY(id);

CREATE TABLE IF NOT EXISTS test13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL
);
ALTER TABLE test13 PRIMARY KEY(id,card);

删除主键:ALTER TABLE tbl_name DROP PRIMARY KEY
–删除test12表的主键
ALTER TABLE test12 DROP PRIMARY KEY;
ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);

CREATE TABLE IF NOT EXISTS test14(
id INT UNSIGNED KEY AUTO_INCREMENT
);
ALTER TABLE test14 DROP PRIMARY KEY; ----报错,错误的表定义;一个表中只可有一列是自增长列
ALTER TABLE test14 MODIFY id INT UNSIGNED;—加到上一句前面,删除主键的自增长,modify删除不了主键,可以删除主键的别的性质。
20、添加删除唯一
添加唯一:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [索引名稱] (字段名称,…)
–测试添加唯一索引
CREATE TABLE IF NOT EXISTS user12(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
card CHAR(18) NOT NULL,
test VARCHAR(20) NOT NULL,
test1 CHAR(32) NOT NULL
);
ALTER TABLE user12 ADD UNIQUE(username);
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE KEY uni_card(card);
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(Test,test1CHAR);
删除唯一:ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
ALTER TABLE user12 DROP INDEX usename;
ALTER TABLE user12 DROP KEY uni_card;
ALTER TABLE user12 DROP KEY mulUni_test_test1;
修改表的存储引擎:ALTER TABLE tbl_name ENGINE=存储引擎名称
–修改表的存储引擎为MyISAM
ALTER TABLE user12 ENGINE=MyISAM;
ALTER TABLE user12 ENGINE=INNODB;
设置自增长的值:ALTER TABLE tbl_name AUTO_INCREMENT=值
–修改自增长值
ALTER TABLE user12 AUTO_INCREMENT=100;
21、删除数据表
DROP TABLE [IF EXISTS] tbl_name[,tbl_name…]
DROP TABLE user12;
DROP TABLE IF EXISTS user12; —如果重复上面语句会报错;这句不会报错,会产生警告SHOWNWARNINGS;
DROP TABLE IF EXISRS user11,user10,user9;
SHOW TABLES;
DROP TABLE IF EXISTS use123,user8,user7,user6; —一条警告(123不存在)

C:\Users\Administrator>mysql -uroot -p -D maizi —在登陆的同时打开数据库
mysql>SELECT DATABASE();

C:\Users\Administrator>mysql -uroot -p maizi --prompt=\d\D\u^\h ----^为~在上方
22、插入记录的操作 (22、23属于DML)
不指定具体的字段名:INSERT [INTO] tbl_name VALUES|VALUE(值…)
–测试插入记录INSERT
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(50) NIT NULL DEFAULT ‘873245913@qq.com’,
age TINYINT UNSIGNED DEFAULT 18
);
INSERT INTO user VALUES(1,‘KING’,‘KING’,‘KING@QQ.COM’,20);
INSERT user VALUE(2,‘QUEEN’,‘QUEEN’,‘QUEEN@QQ.COM’,30);
列出指定字段:INSERT [INTO] tbl_name(字段名称1,…) VALUES|VALUE(值1,…)
INSERT user(username,password) VALUES(‘A’,‘AAA’);
INSERT user(username,password) VALUES(‘B’,‘BBB’);
INSERT user(username,id,password,email,age) VALUES(‘C’,55,‘CCC’,‘CCC@QQ.COM’,DEFAULT);
同时插入多条记录:INSERT [INTO] tbl_name[(字段名称…)] VALUES(值…),(值…)…
INSERT user VALUES(6,‘D’,‘DDD’,‘D@QQ.COM’,35),
(8,'E,‘EEE’,‘E@QQ.COM’,9),
(10,‘F’,‘FFF’,‘F@QQ.COM’,15);
通过SET形式插入记录:INSERT [INTO] tbl_name SET 字段名称=值,…
INSERT INTO user SET id=98,username=‘test’,password=‘this is a test’,email=‘123@qq.com’,age=48;
INSERT user SET username=‘Mai’,password=‘maizi’;
将查询结果插入到表中: INSERT [INTO] tbl_name[(字段名称,…)] SELECT 字段名称 tbl_name [WHERE 条件]
CREATE TABLE IF NOT EXISTS testUser(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE
);
INSERT testUser SELECT id,username FROM user;
SELECT * FROM testUser;
INSERT testUser SELECT * FROM user; ----错误,字段数目不匹配
INSERT testUser(username) SELECT username FROM user;
23、更新和删除记录
更新数据:UPDATE tbl_name SET 字段名称=值,… [WHERE条件][ORDER BY 字段名称][LIMIT 限制条数]
–将用户表中所有的用户年龄更新为5
UPDATE user SET age=5;
UPDATE user SET age=20,email=‘test@qq.com’;

–将第一条记录的password,email,age改变
UPDATE user SET password=‘king123’,email=‘123@qq.com’,age=99
WHERE id=1;
UPDATE user SET age=age-5 WHERE id>=3;
UPDATE user SET age=DEFAULT; --所有年龄更新,回到默认值
UPDATE user SET age=DEFAULT WHERE username=‘A’;
删除数据:DELETE FROM tbl_name [WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
–删除testUser表中的记录
DELECT FROM testUser;

–删除user表中id为1的用户
DELECT FROM user WHERE id=1;
彻底清空数据表:TRUNCATE [TABLE] tbl_name
–彻底清空user表
TRUNCATE TABLE user;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值