mysql入门

mysql安装
安装程序可以直接在MySQL的官网上下载,程序是开源的,不用破解,在百度上自习百度一篇安装教程就可以安装了。
之前安装的最新版本5.7,然后安装后出现了无法启动的错误,所以讲Sever卸载后,再把注册表卸载了,然后重新安装了5.1版本的,能够正常启动了,但是还没有试功能是否可以正常使用。

mysql启动,停止与卸载

在 Windows 命令提示符下运行:

启动: net start MySQL

停止: net stop MySQL

卸载: sc delete MySQL

操作过程

启动服务
net start mysql
MySQL的登录
cls清屏
mysql -u(user) root -p(password)-h127.0.0.1(host) 注:p后面的密码需要紧跟着p
输入密码登录
输出版本信息:mysql -v(已经登录了,就是显示mysql>
没有登录则显示:C:\User\Administrator>)这两种状态下输入的命令是不一样的,前者显示是已经登录了root账号下的mysql,后者还是cmd命令
在cmd命令下输入的命令不加分号
但是在登录数据库后输入的命令需要加分号
而且如果不加分号输入命令的话,窗口会一直显示->这个提示符的意识表示继续,意思是命令还在一直输入,需要添加一个分号然后回车命令就正确输入了。

退出
mysql>exit;
mysql>quit;输入的命令不能加分号,好像quit是补不能退出的
mysql>\q;

修改MySQL的提示符
方法一(未登录之前):mysql -uroot -p123456 –prompt \h
方法二:(登录成功)直接输入prompt +提示符
prompt \u@\h@\d>
改为user@主机名@数据库名字的形式

一些常用的命令
显示当前服务器的版本
select version();
显示当前日期时间
select now();
显示当前用户
select user();
不区分大小写,可以部分大写或全部大写。

MySQL语句的规范
关键字与函数名称全部大写
数据库名称、表名称、字段名称全部小写
SQL语句必须以分号结尾

新建数据库
打开数据库用 use db_name;
create {database|schema} [if not exists] db_name [default] character set [=] charset_name;
[default] character set [=] charset_name;这个命令的意思是将默认的编码方式转化为我们想要的编码方式。
大括号是必须的
中括号可选
没加括号的是必须的

create database databasename;

查看数据库默认的存储引擎:
show variables like ‘storage_engine’;
MySQL默认的是InnoDB存储引擎
给MySQL的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全。
创建table
首先选择数据库:
use 数据库名;
显示表格内容:
describe 表格名;
查看当前服务器下数据库列表
show databases;
查看数据库的创建信息,包括使用的编码信息
show create database db_name;

修改数据库
alter {database|schema} [if not exists] db_name [default] character set [=] charset_name;

删除数据库

drop database db_name;
数据类型
数据表
数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。
数据库是骨架,数据表是血肉。
打开数据库
查看数据库中数据库的目录
show databases;
打开(使用)某一个数据库
use db_name;
查看当前打开的数据库
select database();
创建数据表
create table [if not exists] table_name(column_name_1 data_type,

column_name_n data_type,

)
column_name 列名称
data_type数据类型
eg:
salary float(8,2) unsigned,
解释:列名称叫做salary,是浮点类型,总共8位,小数点2位,无符号型的。

查看数据表列表

show tables [from db_name] [like ‘pattern’ | where expr]
from db_name 查看其它数据库中的其他数据表
eg:
show tables from mysql;
如果要查看数据表table中具体的column
则输入
show columns from tb_name;

向数据表中插入记录

insert [into] tb_name [(col_name,…)]
values (val,…)
例:
insert tb1 values ( ‘tom’,25,7863.2);
如果省略col_name,则需要给所以得column都赋值,不然会出错。

记录查找

select expr,… from tb_name;
select * from tb_name;
eg:

SELECT * FROM test.school WHERE schoolname =’自贡市蜀光中学’ ;
在表中查询schoolname=‘自贡市蜀光中学’这个字的信息

空值与非空

null,字段值可以为空
not null ,字段值禁止为空

自动编号auto_increment,保证了唯一性

自动编号,且必须与主键组合使用
默认情况下,起始值为1,每次的增量为1

主键

主键约束
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为not null

create tb3(
id smallint unsigned auto_increment key;
username varchar(30) not null;
);
这个的意思就是把表tb3中的id设为主键,每次创建一个对象的时候,都会以这个主键编号,这样就保证的唯一性。
就是说,如果我们后面插入的username中有同名的,但是它们还是有不同的一个编号,这样就保证了唯一性。就好比学生可以重名,但是每一个学生有一个唯一的学号,这样就保证了每一个学生的唯一性。

主键与auto_increment的关系

如果只要主键没有auto_increment这样是可以赋值,但是不能够赋相同的值,只有两者同时使用的时候才能够赋相同的值,利用自动编码来区分。

unique key

主键和unique key都可以唯一约束,但是主键只能有一个,但是unique key可以有多个

唯一约束
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值
每张表可以存在多个唯一约束

eg:一个既有1主键约束又有唯一约束的表
create table tb5(
id smallint unsigned auto_increment key,
username varchar(20) not null unique key,
age tinyint unsigned
);
赋值:
insert tb5 (username,age) values (‘tom’,22);
再赋相同的值就不行了。

defult

默认值

当插入记录时,如果没有明确为字段值,则自动赋予默认值

create table tb6 (
id smallint unsigned auto_increment key,
username varchar(20) not null unique key,
sex enum(‘1’,’2’,’3’)default ‘3’
);
insert tb6(username) values (‘tom’);
select * from tb6;

约束

1.约束保证数据的完整性和一致性
2.约束分为表级约束和列级约束
3.约束类型包括:
not null(非空约束)
[primary(主键约束)
unique key(唯一约束)
default (默认约束)
foreign key(外键约束)

外键约束的要求

1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2、数据表的存储引擎只能为innoDB。
3、外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
4、外键列

SQL中问号”?”的作用

?表示占位符,意思是那里有一个参量,但是不方便直接写
可能这个参量需要从其他地方调用,所以先用?占位,然后在后面的语句
中从其他地方调用来补全
String sql = “SELECT userid,name FROM tuser WHERE userid=? AND password=?” ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,userid) ; // 这里设置了第一个?的值
pstmt.setString(2,password) ; // 这里设置了第二个?的值

等你“setString”完所有的?后,你的sql就构造好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值