mysql 数据库简单入门

mysql基本操作

  • 连接mysql数据库
mysql -h 服务器地址  -u root -p 不要在p后面直接跟密码
  • 忘记密码
1./etc/mysql/mysqld.conf.d/,编辑mysqld.conf
sudo vim mysqld.conf
2.找到[mysqld]下
添加:skip-grant-tables
保存退出
3.重启mysql服务:
 sudo service mysql restart | stop | start
4.重新登录mysql,这个时候不需要密码,登录进去后:
use mysql;
update user set authentication_string=PASSWORD("设置密
码") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
5.重启mysql服务
sudo service mysql restart
  • 远程连接
1.通过mysql -u⽤户名 -p登录mysql数据库
2.创建⼀个新⽤户来远程连接
 create user 'root'@'%' identified by '123' #密码
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY
'123' WITH GRANT OPTION;
3.执⾏命令:flush privileges; 刷新权限
4.退出mysql,到/etc/mysql/mysql.conf.d下,执行 sudo vim mysqld.cnf
 找到 “bind-address = 127.0.0.1, 或者把 127.0.0.1 改成 0.0.0.0这⼀⾏要注释掉,只需在前⾯加个
#
5.重启mysql服务
 sudo service mysql restart | start | stop #重启、启动、停⽌
 或者:sudo /etc/init.d/mysql restart | start | stop
6.如果开启了防⽕墙,请添加3306端⼝
 sudo ufw allow 3306
  • 创建数据库
create database 数据库名
  • 查看数据库
show databases;
  • 删除数据库
drop database 数据库
  • 选中库
use 数据库名
  • 查看表
show tables;
  • 查看数据库创建语句
show create database 数据库名
  • 查看选中的数据库
select database()
  • 修改数据库字符集
alter database student default charset=utf8;
特别注意!
  • 每条命令结束必须使⽤; 或者 \g 结束
  • 退出mysql使⽤命令quit或exit
操作数据库表
  • 创建表
create table [if not exists] 表名(
 字段名1 类型 [限制],
 字段名2 类型 [限制],
 ...
 字段名n 类型 [限制] #最后⼀列没有逗号
) [engine=myisam | innodb][ default charset=utf8];
primary key 主键 不允许有重复值,不允许为空
auto_increment ⾃增⻓,只对int型主键起作⽤
#复合主键
mysql> create table grade(
 sid int ,
 cid int,
 score float,
 primary key(sid,cid));
  • 删除表
drop table 表名
  • 复制表结构
create table 表名 like 其他表名
  • 查看表结构
desc 表名;
  • 查看建表语句
show create table 表名;
  • 修改字段类型
 alter table 表名 modify 字段名 类型 [限制] #增加字段
 alter table 表名 add [column] 字段名 类型 [限制];
#删除字段
 alter table 表名 drop [column] 字段名;
修改字段名和类型
 alter table 表名 change [column] 旧字段名 新字段名 类型 [限制];
 
#修改表名
 alter table 表名 rename 新表名
 alter table 表名 [engine=myisam] [default charset=utf8];
 
 可以通过firstafter指定插⼊位置
 alter table student add sno varchar(3) not null after sid; //在
sid列后插⼊
 alter table student add sid int primary key auto_increment
first;//在第⼀列插⼊
  • 字段限制
primary key 不允许空值,唯⼀
not null ⾮空
unique 唯⼀
default 缺省,默认值

数据增删改查

写法⼀:insert into 表名(字段1,字段2...) values(1,2...);
按照建表时的字段顺序进⾏插⼊,每⼀列都要给值
写法二:插⼊多个记录
 insert into 表名(字段1,字段2...)
 values(1,2...),
 (1,2...),
 (1,2...)....
update 表名 set 字段1=1,字段2=2... where 条件 #不加where修改的是所
有的记录
删除表中的数据,⾃增主键的值不会重新开始
delete from 表名 where 条件;#如果不加条件,会删除表中所有数据
alter table 表名 auto_increment = 5 # 设置⾃增主键开始值
清空表,⾃增主键的值重新开始编号
truncate
 truncate table 表名,清空表中所有记录,等价于delete from 表名;
 deletetruncate差别,truncate后,表中⾃增主键值从1开始
  • 基础查询
select username,password from user;
select usernname as ⽤户名, password as 密码 from user; #可以给字段起
别名,as后面跟个别名
select * from user; #查询所有字段,慎⽤,⼀般不建议使⽤,会导致⽆法优化
sql语句
select 2018,username,password from user; #可以有常量,表达式
select sname,2018-year(sbirthday) from student; #year是mysql的内置函数
select distinct username from user; #去除重复记录 distinct 针对查询结
果去除重复记录,不针对字段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章