创建表
creat table tablename(id int auto_increment primary key,name varchar(32),age int)engine=innodb default charset=utf8;#engine 指明数据库建表引擎为innodb(支持事物操作)#myisam 不支持事物#default charset=utf-8 指明数据库表的编码字符集为utf8
列属性选项
[NOT NULL | NULL] [DEFAULT 默认值][AUTO_INCREMENT] [UNIQUE [KEY] | PRIMARY [KEY]][COMMENT '列注释']...
自增列 AUTO_INCREMENT =值
最大/小记录行数 MAX_ROWS = 值. MIN_ROWS=值
修改表
ALTER [IGNORE] TABLE 表名修改项..
修改项:
ADD COLUMN 列定义 [FIRST|AFTER 列名] #添加列ALTER COLUMN 列名 {SET DEFAULT ' ' | DROP DEFAULT} #添加/删除默认值CHANGE COLUMN 旧列名 列定义[FIRST|AFTER 列名] #列重命名MODIFY COLUMN 列定义 [FIRST | AFTER 列名] #修改列类型DROP COLUMN 列名 #删除列RENAME 新表名 #对表重命名ORDER BY 列名. #根据某个列的数据来排序
删除表
DROP TABLE [IF EXISTS] 表名
表数据操作
添加数据
INSERT INTO <表名>SET <列名1> = <值1>,<列名2> = <值2>,…
insert into tablename values('...','...','...',null); #所有列数据 即使是null
添加数据有三种方法:
insert into tablename(name,age) values('roderick',18);insert into tablename(name,age) values('AA',18),('BB',18);#可以跟多条记录,一元组的形式添加insert into tablename(name,age) select name,age from tablename2;#从别的表查找数据 写入 (复制)
修改数据
UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]
<表名>:用于指定要更新的表名称。SET子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字 DEFAULT 表示列值。WHERE子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。ORDER BY子句:可选项。用于限定表中的行被修改的次序。LIMIT子句:可选项。用于限定被修改的行数。
根据条件修改表中数据:
mysql> UPDATE tb_courses_new-> SET course_name='DB',course_grade=3.5-> WHERE course_id=2;Query OK, 1 row affected (0.13 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> SELECT * FROM tb_courses_new;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 4 | Computer Network || 2 | DB | 3.5 | MySQL || 3 | Java | 4 | Java EE |+-----------+-------------+--------------+------------------+3 rows in set (0.00 sec)
删除数据
删除表中数据,但是不删除表,三种方法:
delete from tb1 where id>10 #跟条件(常用)
delete from tablename; #删除数据,但是自增计数不会被删除 单纯的清掉数据truncate table tablename; #清空表,相当于新的表 自增计数0
