数据库基础知识(一)
sql常见操作(mysql实例)
数据库,表操作
sql语句
show databases;//查看所有数据库 create database daname DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;//创建数据库并设置字符集 drop database daname;//删除数据库 show tables;//查看所有表 show create table tbname;//查看表结构 drop table tbname;//删除表
建表(用户表示例)
sql语句
create table if not exists user ( userid int(4) NOT NULL AUTO_INCREMENT comment 'id设置主键自增', name varchar(20) NOT NULL comment '用户名', password varchar(20) NOT NULL comment '密码', usertype int(4) NOT NULL DEFAULT 1 comment '用户类型', PRIMARY KEY (`userid`) )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1000 comment '用户表'; create table if not exists userservice ( serviceid int(4) NOT NULL AUTO_INCREMENT comment '某项id设置主键自增', userid int(4) NOT NULL comment '所属用户', sname varchar(20) NOT NULL comment '服务名', other varchar(20) comment '其他字段', PRIMARY KEY (`serviceid`), CONSTRAINT fkuserid FOREIGN KEY (userid) REFERENCES user(userid) )ENGINE=InnoDB DEFAULT CHARSET=utf8 comment '用户某项服务表';
- 说明
建表时主键有两种方式创建,示例为一种即在最后统一申明,或者在字段后加primary key。
建表时外键只能在最后统一申明。
修改表结构
sql语句
字段修改 alter table tbname add column colname 字段内容 ... ;//添加字段 alter table tbname drop column colname;//删除字段 alter table tbname modify colname 修改内容...//修改字段(不可重命名) alter table tbname change colname newname 字段内容//修改字段(可重命名) alter table tbname change colname colname ...AUTO_INCREMENT;//设置自增 约束修改 alter table tbname add [CONSTRAINT 约束名] 约束类型 (column1,[column2,column3,...]); alter table tbname add PRIMARY KEY (colname);//添加主键 alter table tbname drop PRIMARY KEY;//删除主键,注意没有字段名 alter table tbname add FOREIGN KEY (colname) REFERENCES othertb(colname);//添加外键 alter table tbname drop FOREIGN KEY fkname;//删除外键 alter table tbname drop index 约束名;//删除唯一性约束,语法必须如此:
修改表内容
sql语句
update tbname set column1=value, column2=value,...WHERE some_column=some_value;//修改表字段内容,操作要慎重,若条件为空,将修改整个表。 delete from tbname WHERE some_column=some_value;//删除某些行 delete from tbname;//全部删除 insert into tbname VALUES (value1, value2, value3,....)或者 insert into tbname(column1, column2, column3,...) VALUES (value1, value2, value3,....);//插入内容
表查询
sql语句
select colname AS column_alias FROM table_name or SELECT column_name FROM table_name AS table_alias;//别名 select tbname.colname,,, from tbname1 INNER JOIN tbname2 ON tbname1.colname=tbname2.colname;//连接 select * distinct...;//结果去重 limit order by [asc|desc] group by
- 查询条件说明where
select后跟where 条件
+ and,or
+ in,like
+ between select可用于创建View
create view vname as select * ...;
查寻有很多情况往往根据实际,不再举例说明