mysql_语法总结
环境:mysql 5.5
创建数据库test:
1 create database test;
我们执行代码就可以创建test数据库了,如果想要查看我们是否创建好了数据库test,我们可以通过一下代码查看mysql中的所有数据库
show databases;
在我机器上面查询出来的是:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | drp | | duona | | expert | | jeecgv3 | | mysql | | performance_schema | | sample | | test | | test_uuuu_test | +--------------------+ 10 rows in set
我们可以看到,在数据库中我们已经创建好了test数据库了。
现在我们就选定了test数据库了,接下来如果我们希望删除test数据库,我们只需要使用下面的sql语句即可:
mysql> drop database test; Query OK, 0 rows affected
现在我们再次查询mysql中所有的数据库情况:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | drp | | duona | | expert | | jeecgv3 | | mysql | | performance_schema | | sample | | test_uuuu_test | +--------------------+ 9 rows in set
可以发现,test数据库已经被我们删除。
//回到test没被删除的状态
现在我们需要操作test数据库,我们可以使用下面代码,选择数据库test:
mysql> use test; Database changed
我们需要查看test数据库中现在有多少张表,可以使用:
mysql> show tables; Empty set
我们可以清楚的看到,现在test中是没有任何表的。
那么现在我们就往里面添加一张表吧!
mysql> create table student(id int not null primary key,name varchar(20) not null unique); Query OK, 0 rows affected
我们往test数据库中添加了一张student表,表中有id,name字段。
现在再看一下test中的表情况:
mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | student | +----------------+ 1 row in set
你会发现,现在增加了student表了。
我们也可以看看student的表机构情况:
mysql> desc student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(20) | NO | UNI | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set
所以对于上面的创建student表的sql语句的大概意思你可以猜出来了吧:
student表有id,name两个字段,对于id字段,类型是int整形,mysql默认长度是11,id字段不能为null,即不能为空,id字段为主键,即primary key,没有默认值
对于name字段,和id字段差不多,类型为varchar类型,长度为20,不能为空,在表中时唯一的(unique,在同一个表中不能出现相同的值),没有默认值
现在我们想在student表中增加一个字段age,类型为int类型:
mysql> alter table student add age int; Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnings: 0
我们再看看表的结构:
mysql> desc student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(20) | NO | UNI | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set
说明我们确实是增加了age这个字段。
现在我们需要增加生日birthday字段,类型为date类型:
mysql> alter table student add birthday date; Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnings: 0
我们查看student表结构:
mysql> desc student; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(20) | NO | UNI | NULL | | | age | int(11) | YES | | NULL | | | birthday | date | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 4 rows in set
我们增加了birthday字段,并且类型为date类型。
现在我们需要删除birthday字段:
mysql> alter table student drop column birthday; Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnings: 0
查看表结构:
mysql> desc student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(20) | NO | UNI | NULL | | | age | int(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set
说明删除成功!
现在向student表中插入数据:
mysql> insert into student values(1,'hongten',20); Query OK, 1 row affected
mysql> insert into student(id,name,age) values(2,'hanyuan',30); Query OK, 1 row affected
这两中方式,都是向student表中插入数据,第一种方式没有写出字段名称,而后面的值是所有字段的值。
而第二种方式是把字段都写了出来,后面跟的是字段对于的值。
现在查询student表:
mysql> select * from student; +----+---------+-----+ | id | name | age | +----+---------+-----+ | 1 | hongten | 20 | | 2 | hanyuan | 30 | +----+---------+-----+ 2 rows in set
可以看出我们刚才插入的两组数据已经保存到数据库中了,现在对一个字段查询:
mysql> select name from student; +---------+ | name | +---------+ | hanyuan | | hongten | +---------+ 2 rows in set
上面只是针对name字段的查询;
现在进行条件查询:
mysql> select name,age from student where id = 2; +---------+-----+ | name | age | +---------+-----+ | hanyuan | 30 | +---------+-----+ 1 row in set
针对student表中的name,age查询,条件是id=2的记录;
现在查询student表中的记录总数:
mysql> select count(*) from student; +----------+ | count(*) | +----------+ | 2 | +----------+ 1 row in set
查询不同name的student:
mysql> select distinct(name) from student; +---------+ | name | +---------+ | hanyuan | | hongten | +---------+ 2 rows in set
修改id=2的name字段:
mysql> update student set name = 'Tom' where id =2; Query OK, 1 row affected Rows matched: 1 Changed: 1 Warnings: 0
查询student表:
mysql> select * from student; +----+---------+-----+ | id | name | age | +----+---------+-----+ | 1 | hongten | 20 | | 2 | Tom | 30 | +----+---------+-----+ 2 rows in set
现在删除id=2 的记录:
mysql> delete from student where id = 2; Query OK, 1 row affected mysql> select * from student; +----+---------+-----+ | id | name | age | +----+---------+-----+ | 1 | hongten | 20 | +----+---------+-----+ 1 row in set
.....................今天就先到这里吧!!!