(4)简朴查询语句:
查看当前数据库下已有数据表:SHOW TABLES; 扩展:SHOW [FULL] TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr];查看指定数据表的详细信息:SHOW CREATE TABLE tbl_name;查看数据表结构: A.DESC tbl_name; B.DESCRIBE tbl_name; C.SHOW COLUMNS FROM tbl_name;删除指定的数据表:DROP TABLE [IF EXISTS] tbl_name;表结构相关操纵(划重点)[字段名称 字段类型 完备性约束条件]
针对:字段、约束、数据表的CURD操纵。 关键字:ADD、DROP、MODIFY、DROP
(1)添加字段:
ALTER TABLE tbl_name \\选中这个表ADD 字段名称 字段类型 [完备性约束条件] \\添加字段[FIRST|AFTER 字段名称] \\指定位置添加次序示例代码:ALTER TABLE wp_users ADD user_passbak varchar(60) NOT NULL DEFAULT '' AFTER user_pass(2)删除字段:
ALTER TABLE tbl_nameDROP 字段名称(3)添加默认值:
ALTER TABLE tbl_nameALTER 字段名称 SET DEFAULT 默认值;(4)删除默认值:
ALTER TABLE tbl_nameALTER 字段名称 DROP DEFAULT(5)修改字段类型、完备性约束条件:
ALTER TABLE tbl_nameMODIFY 字段名称 字段类型 [完备性约束条件][FIRST | AFTER 字段名称](6)添加主键
ALTER TABLE tbl_nameADD PRIMARY KEY(字段名称)(7)删除主键
ALTER TABLE tbl_nameDROP PRIMARY KEY;(8)添加唯一:留意:MySQL创建表会自动为UNIQUE KEY生成索引名称(index_name)=字段名称
ALTER TABLE tbl_nameADD UNIQUE KEY|INDEX [index_name] (字段名称)//留意:重复(9)删除唯一
ALTER TABLE tbl_name DROP KEY|INDEX index_name;(10)修改字段名称:
ALTER TABLE tbl_nameCHANGE 原字段名称 新字段名称 字段类型 字段属性(全等完备性约束条件) [FIRST | AFTER 字段名称](11)修改数据表名称
ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name或
RENAME TABLE tbl_name TO new_tbl_name;(12)修改AUTO_INCREMENT的值
ALTER TABLE tbl_name AUTO_INCREMENT=值贴出代码:
--测试添加删除字段CREATE TABLE `test_add`( `id` INT NOT NULL AUTO_INCREMENT KEY COMMENT '测试名称', `username` VARCHAR(20) NOT NULL COMMENT '用户名称');INSERT test_add(username) VALUES('admin');--添加密码字段名ALTER TABLE `test_add`ADD `password` CHAR(32) NOT NULL UNIQUE;--添加年龄ALTER TABLE `test_add`ADD `age` TINYINT UNSIGNED NOT NULL DEFAULT 18FIRST;--添加到字段首部--添加用户电话(在密码字段后面)ALTER TABLE `test_add`ADD `tel` CHAR(11) NOT NULL UNIQUEAFTER `password`;--删除字段passwordALTER TABLE `test_add`DROP `password`;--添加默认值ALTER TABLE `test_add`ALTER `tel`SET DEFAULT '用户电话';--将用户名字段类型改为30ALTER TABLE `test_add`MODIFY `username` VARCHAR(30) NOT NULL;--添加唯一ALTER TABLE `test_add`ADD UNIQUE KEY(`tel`);5. 数据表内容操纵
增编削查:INSERT、DELETE、UPDATE、SELECT
wp_users数据表:ID user_login user_pass1 lovebai 1233 liang123 121、添加记录[INSERT...VALUES...]:INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);//col_name字段名称示例:INSERT `test2`(`id`,`username`,`age`,`email`) VALUES(1,'liang',22,'[email protected]');INSERT wp_users(user_login,user_pass) VALUES('liang',123456);2、删除记录[DELETE FROM...]:DELETE FROM tbl_name [WHERE 条件]//删除是一行一行的删除。如果不添加条件,表中所有记录都会被删除示例:DELETE FROM wp_users where id=2;3、修改记录[UPADTE...SET...]:UPDATE tbl_name SET 字段名称=值,字段名称=值 [WHERE 条件]。如果不添加条件,整个表中的记录都会被更新示例:UPDATE wp_users SET user_login='liang123',user_pass=12 WHERE id=3;查询记录:划重点,查询字句
SELECT select_expr,... FROM tbl_name\\选定表中查询字段。select_expr:字段名称或表达式。[WHERE 条件][GROUP BY {col_name|position} HAVING 二次筛选]\\分组、cou_name字段名称[ORDER BY {col_name|position|expr} [ASC|DESC]]\\排序[LIMIT 限制结果集的显示条数]\\分页结果 示例代码:SELECT user_login FROM wp_users;(1)查询表中所有记录:SELECT * FROM tbl_name;//星号*所有字段
(2)指定字段信息:SELECT 字段名称,... FROM tbl_name;//留意:字段名称的次序,影响查询字段的次序。
(3)给字段起别名:SELECT 字段名称 [AS] 别名名称,... FROM db_name.tbl_name;
//不写db_name.tbl_name默认是当前表。作用:当字段名称过长时。
#查询出id一个字段,默认username是id的别名。select id username from dbtable;(4)给数据表起别名:SELECT 字段名称 ,... FROM tbl_name [AS] 别名;//单表对查询起别名,没有很多作用,主要适用于多表查询
(5)库名.表名:SELECT 字段名称,... FROM db_name.tbl_name;//db_name.tbl_name加点的形式,查询在db_name数据库下的tal_name表的信息,好处是不消打开数据库。
(6)表名.字段名的形式[适用于多表查询]:SELECT tbl_name.col_name,... FROM tbl_name;//主要告诉字段名来自哪个表,更适用于多表。
贴上代码:
--测试数据表插入,修改,删除,查询的操纵--测试添加记录CREATE TABLE IF NOT EXISTS `test2`( `id` INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号', `username` VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名', `age` TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄', `email` VARCHAR(50) NOT NULL DEFAULT '[email protected]' COMMENT '邮箱')ENGINE=INNODB CHARSET=UTF8;--插入值INSERT `test2`(`id`,`username`,`age`,`email`) VALUES(1,'liang',22,'[email protected]');--一次添加多条记录INSERT `test2`(`id`,`username`,`age`,`email`) VALUES(2,'liang2',23,'[email protected]'),(4,'liang3',24,'[email protected]'),(7,'liang4',25,'[email protected]');--修改记录UPDATE `test2` SET `age`=21 WHERE `id`=2; --删除记录DELETE FROM `test2` WHERE `age`=21;--查询指定字段名称SELECT `id`,`username` FROM test2;--查询test数据库下的test2表的内容SELECT * FROM test.test2;SELECT `id`,`username` FROM test.test2;--查询test2表中的id 编号(给字段起别名)SELECT id AS '编号' FROM test.test2;--给数据表起别名SELECT * FROM test2 AS `pikaqiu`;--表名.字段名的形式.告诉字段名来自那个表SELECT test2.id,test2.username FROM test2;(7)WHERE条件:会筛选出符合条件的记录:
<ul><li data-track="111">比力运算符:<span style="color: #333333; --tt-darkmode-color: #333333;"><span style="background-color: #F3F4F4; --tt-darkmode-bgcolor: #BDBEBE;">> >= < 20;--含糊查询SELECT `id`,`username` FROM `test2`WHERE `username` LIKE 'liang';--匹配*liang*SELECT `id`,`username` FROM `test2`WHERE `USERNAME` LIKE '%liang%';(8)分组GROUP BY:对查询结果进行分组。
贴上代码:
#举个栗子SELECT `id`,`names` FROM `goods` GROUP BY `id` HAVING `id`>6;--测试分组SELECT `id`,`username`,`age` FROM `test2`GROUP BY `age`;--按照年龄分组,查询组中的用户名,同年龄段各有哪些用户SELECT `id`,GROUP_CONCAT(`username`),`age` FROM `test2`GROUP BY `age`;--按照年龄分组,得到用户名详情,并且分别组中的总人数SELECT `id`,GROUP_CONCAT(`username`) AS userDetail,`age`,COUNT(*) AS totalusers FROM `test2`GROUP BY `age`;--HAVING二次筛选,组中人数大于2SELECT `id`,GROUP_CONCAT(`username`) `age`,COUNT(*) FROM `test2`GROUP BY `age`HAVING COUNT(*)>2;(9)排序ORDER BY升序或降序:对查询结果进行排序。语法:ORDER BY 字段名称 ASC|DESC。
贴上代码:
--按照id降序排列SELECT `id`,`username`,`age` FROM `test2`ORDER BY `id` DESC;--实现随机记录RABD()SELECT `id`,`username`,`age` FROM `test2`ORDER BY RAND();(10)LIMIT(分页结果):限制查询结果返回的数目。