Mysql数据库的常用命令:
准备工作:windows环境下,安装并配置好环境变量后,在cmd窗口中输入mysql,如报错ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)。
解决方法:先使用services.msc查看系统服务,没有服务的话用CMD进到mysql的bin目录下,执行mysqld -install ,成功就添加了服务,删除服务的话用mysqld -remove MySQL。接着启动服务可以在cmd中使用:net start mysql启动服务。 再以:mysql -u root 进入mysql数据库。
如果需要远程连接mysql数据库:
方法①授权:grant all privileges on DBname.* to 'root'@'ip地址' identified by '登录密码' with grant option ;
方法②在bin目录下找到config文件,点击进入安装时的窗口,选择允许远程访问即可。
常用sql语句:
SQL:是结构化查询语言的缩写,所有使用SQL语言的数据库,命令都通用。mysql是不区分大小写的数据库,在cmd中输入时要以分号(;)结尾回车后才生效,所以有些sql语句一行写不下时,可以另起一行,写完再以分号结尾回车执行。sql语句分为以下4种:
1 数据定义语言(DDL):
show databases;(查看有哪些数据库)
create database test (test为数据库名);(创建数据库)
use databaseName;(使用此数据库)
show tables;(查看选中的数据库中有哪些表格,当然没创建时,不存在表格)
create table teacher(id int primary key auto_increment,name varchar(20) not null,gender char(2),age int(2),birth date,job varchar(50)); (创建表格:设定其中的字段,字段的数据类型和大小,是否是主键、是否非空等属性 )
desc teacher;(查看表格)
创建好表格后需要对表格进行修改时使用以下语句:
增加一个列:alter table teacher add column dept varchar(20);
删除一个列:alter table teacher drop column dept;
修改一个列的属性(不需修改列名时):alter table teacher modify dept varchar(25) not null;
修改一个列的属性(需修改列名时):alter table teacher change dept dept_rename varchar(25);
修改一个列的属性(不需修改列名时也可以用change):alter table teacher change dept_renamedept_renamevarchar(35) not null;
修改一个表的表名字:alter table teacher rename to teacher_rename
增加一个外键:alter table teacher add constraint foreign key(class_id) references class(id);
删除一个外键: alter table teacher drop foreign key class_id;
2 数据操作语言(DML):主要包括添加数据和修改数据。
添加数据:insert into 表名 (字段1,字段2...) values(值1,值2,值3),如果不写字段则需要按照表格中的字段顺序给所有字段赋值。
修改数据:update 表名 set 字段名=‘值’ where 字段名=‘值’。where后是条件,限定修改哪条记录。
删除记录:delete from 表名;(删除所有记录)delete from 表名 where 字段=‘值’ (删除某条);
3 数据查询语言(DRL):
正所谓:一分添加,九分查询。sql语句使用最多的是查询。这里我们以实际例子来展示,我已经提前在之前创建的teacher表中添加了若干条记录。
① 查询所有老师的信息:select * from teacher; *是通配符,这种方式查询效率不高,最好带上字段名。
② 查询id 为2且职业为空的老师的姓名和性别。 select name,gender from teacher where id=2 and job is null;
③ 查询姓名最后一个字符为W的老师的信息。select* from teacher where name like 'W%'
④ 查询所有老师的信息,并按照年龄升序排列。select * from teacher order by age asc;(升序:asc,降序:desc)
⑤ 按性别分组查询男女老师的人数。select gender,count(gender) from teacher where group by gender.
⑥按性别分组查询女老师的人数。select gender,count(gender) from teacher where group by gender having gender ='mm';
⑦ 查询老师记录的前三条。select * from teacher limit 0,3; 0是起始位置,3是条数。
⑧ 别名的使用:比如在两个表都有name字段时,select t.name from teacher as t; t是teacher的别名,as可以省略。
sql语句中关键字出现的顺序必须是where,group by,having ,order by,limit.
4 事务控制语言(TCL):
在关系型数据库中,一个事物可以是一条sql语句,一组sql语句或者整个程序。事务具有4个属性:原子性、一致性、隔离性、持续性。mysql默认是自动提交,每次执行语句自动完成这次事务。mysql支持回滚操作。示例:
①改为手动提交 事务:set autocommit=false; 未提交前,sql语句是存在内存中的,并未对数据库产生真正的效果。
②进行一些插入、修改操作-----rollback-----将回到插入、修改操作之前的样子。
在操作中可以设置断点:save point pointName;-----rollback to pointName。
最终进行commit。当然操作途中进行commit后,将无法回滚。