表
创建数据表及内容格式(表名区分大小写)
create table t1(id int, name varchar(20));
#创建表后,数据表中会多两个文件,(table名)t1.frm,存放表结构(frame),t1.abd存放表索引和数据,以为使用的时innodb data存储引擎(软件,用来存取数据,在内存和磁盘之间)
#varchar表示字符数据,但是VARCHAR可以保存可变长度的字符串,后面(20)是代表字符串的长度
MariaDB [sanchaung]> create table t2 (id int ,name varchar(20)) engine=myisam;
#指定引擎
[root@localhost sanchaung]# ls
t2.frm t2.MYD t2.MYI
#frm存放表结构
#MYD存放数据 data myisam
#MYI存放索引 index
#创建临时表,show tables不会显示
create temporary table sanchaung(id int);
#查询临时表
select * from sanchuang;
#插入数据
insert into sanchuang(id) calues(1),(2),(3)
临时表的特点
show tables是看不到的,只能当前的终端用户可以使用,其它的终端用户不能看到,Mysql给每个登陆的用户创建了一个session,临时表是隔离的,当用户退出mysql时临时表会被删除,临时表一般都是放在内存里面。
innodb存储引擎的特点:支持事物,支持行级别的锁(一行一行的锁),支持外键
根据已有的表创建新表
MariaDB [mysql]> create table sancahung.user like mysql.user;
#根据mysql的user表新建sancahung的user表,有框架,没有内容
MariaDB [mysql]> create table user2 as select user,host from mysql.user;
MariaDB [mysql]> select * from user2;
+-------+-----------------------+
| user | host |
+-------+-----------------------+
| ;oijc | % |
| lhc | % |
| liuhc | % |
| yxc | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+-------+-----------------------+
#根据已有的表创建新表,可以指定字段保存表里面的哪些内容
显示数据表
MariaDB [sanchaung]> show tables;
数据表插入内容
MariaDB [song]> insert into t8(id,salary,name) values(123,200000.2,'cali');
Query OK, 1 row affected (0.03 sec)
MariaDB [song]> select * from t8;
+------+-----------+------+
| id | salary | name |
+------+-----------+------+
| 123 | 200000.20 | cali |
+------+-----------+------+
查看数据表的内容
MariaDB [song]> select * from t6;
+------+-----------+
| id | salary |
+------+-----------+
| 1 | 200000.12 |
+------+-----------+
查看数据表的内容格式(列名不区分大小写)
MariaDB [sanchaung]> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
统计表内数据大小
MariaDB [song]> select id,salary,length(name),char_length(name) from t8;
+------+-----------+--------------+-------------------+
| id | salary | length(name) | char_length(name) |
+------+-----------+--------------+-------------------+
| 123 | 200000.20 | 4 | 4 |
+------+-----------+--------------+-------------------+
#length 是在内存中占几个字节
#char_length 是有多少个字符
统计表内列字段的包含内容的数量count
#格式 select count(字段名) from 表名;
select count(id) from sc;
#查看sc表的id列有多少个数据
select count(*) from sc:
#统计sc表中有多少行
统计表内列字段内容的总和sum
#格式 select sum(字段名) from 表名;
select sum(amount) from pen;
#查看pen表中amount字段这一列数据的总和
统计表内列字段内容的平均avg
删除表
drop table 表名
删除表中的行
delete from 表名 where 字段名=要删除的字段
delete和truncate 的区别?
-
delete删除表里的数据的时候是一行一行的删除,删除后会产生二进制日志,可以根据日志恢复。
-
truncate删除数据特别快,整个表锁定操作然后删除,不会记录二进制日志,不能恢复,一般用来删大表
-
查看警告信息
show warnings;