SQL基础

来源:互联网 发布:李米的猜想台词知乎 编辑:程序博客网 时间:2024/05/05 09:07

MySQL被广泛地应用Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。所以掌握mysql的基本语法是做开发的必要知识。

一.数据库的建立和删除

 1.1创建数据库,建表

要在cmd启动mysql的话,可以使用命令:mysql -h (ip地址) -P 端口 -u 用户名 -p,回车后,输入密码即可登录成功。创建一个名为new的数据库create database new;再在这个数据库中创建一个表,在表中加入,使用这个数据库use new;CREATE TABLE 表名 (字段名 字段类型,字段名 字段类型... ...)例如create table one(id int(20),name varchar(20));。

查看数据库:SHOW DATABASES ;
使用数据库:USE 数据库名 ;
查看数据表:SHOW TABLES ;
查看数据表结构:DESCRIBE 表名;

1.2删除数据库,删除表,以及重命名。

如果要删除new这个数据库,就用drop  database new;如果需要删除这个表,便用drop table one;便删除了这个张叫one的表。要修改这个数据库的名字,用rename database 就数据库名 to 新数据库名字。

二.修改表

1.重命名表名:ALTER TABLE 表名 RENAME 新表名;
2.向表中添加一列:ALTER TABLE 表名 CAHNGE ALTER TABLE 表名 ADD 字段名 字段类型

           修改表中某一列的名字COLUMN 旧字段名 新字段名 新字段

              删除表中一列:类型 ALTER TABLE 表名 DROP COLUMN 列名 ;

      修改表中一列的数据类型:ALTER TABLE 表名 MODIFY 字段名 字段类型 ;    

三.插入数据

全字段插入:向表中插入数据:insert into 表名 values(’1‘,’张三‘);插入id为1,name为张三的数据。 即:表中每列都会输入数据。

部分字段插入:inset into 表名 (列2)values('张三 ');插入name为张三,id没有值得数据。即:表中只有一部分数据会被插入。

在数据库中的数据类型和java是不同的。一般为整数int(size)。浮点型decimal(size,d)size为数字位数,d为小数位数。字符型char(size),size为字符串长度。varchar()可变字符串长度size,为字符串最大长度;text长度更长的字符串类型。date(yyyymmdd)。

四.查询语句:

查询制定列的数据select 列名1,列名2... from 表明。例select id,name from one;

        一张表中查询出所有列的数据:select * from 表名;例select * from one;

还有一种where用于规定语句的执行条件,在查询语句后面加上where可以限定查询结果:select * from one where name=’张三‘;(在one的表中查询name为张三的数据)。

        要同时满足两个条件才能得到一个限定结果用AND规定,即:select * from one where name='张三' AND id='1';(在one的表中查询name为张山并且id为1的数据)。

满足两个或多个条件中的任意一个条件输出结果用OR规定,即:select * from one where name='张三' OR id='2';(在one的表中查询满足name为张三或者id为2的数据,输出满足的所有结果)。

where中规定多个值,我们就用in来搜索数据。select *  from 表名wherein(值1,值2,值3;表示该列符合值1,值2,值3的数据都会返回。当然这个查询语句也可以使用OR实现select * from表名where 列1 = 值1 OR 列1 = 值2 OR 列1 =  值3。即:select * from one where name in('张三'.'李四');搜索在叫做one的这个表下的name叫做张三,name叫做李四的数据。

模糊查询:select* from 表名 where 列名 like '_n%' ;查询这个表中此字段内,第二个字符为n的数据。例:select * from one where name like'张%';查询在one列表中name列中第一字是张的所有数据。在查询中我们需要使用通配符来代替我们所需要填入的字符。

通配符如下:

1.%,用来匹配一个或多个字符。
2._ ,用来匹配仅一个字符。
3.[多个字符],用来匹配多个字符中的一个(MySQL不支持)。
4.[!多个字符],用来匹配非多个字符中的一个(MySQL不支持)。

五.排序

在很多数据中我们免不了会要排序,排序会有升序和降序之分,升序就是从小到大排列,降序就是从大到小的排列。

升序排列:select * from 表名 order by 列名。例:select * from one order by id;(在one这个标下由id的从小到大排序这个数据)。

降序排列:select * from 表名 order by 列名 desc。例:select * from one order by id;(在one这个标下由id的从大到小排序这个数据)。

六.唯一值

在一个表中的列里面经常会有很多一样的数据,为了取出这些数据(所有类型不同),我们需要用到DISTINCT,来取出不同的类型。select distinct 列名 from 表名 例:select distinct name from one;(在one表里面的name列里,把name一样的数据只显示一次。)

七.limit

在mysql中,在表中我们查询的结果有时候,并不需要所有的数据,而只需要前几行数据,那么这个时候我们就可以使用limit关键字。

select * from 表名 limit 需要返回的行数。例:select * from one limit 2;(在one表中取出两行数据)。

select * from  表名 limit 下标,需要返回的行数。例:select * from one limit 1,1;(在one表中取出一行下标为1的数据)。

八.修改数据

修改表中的数据:update 表名 set 列名=新值 where 列名 =指定数据;如果不带有条件限定将会导致此表所有数据的此字段都修改为新值。例:update one set name=‘李四’ where name=‘张三’;把name为张三的改为李四。

九.删除数据

删除表中已有的某条数据。delete from 表名 where 列名=某个值。例:delete from one where id=1;删除one表中的id为1的数据。

0 0
原创粉丝点击