查找数据:
string connStr = "server=localhost;port=3306;user=root;password=root;database=db_winform";
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
string sql = " select * from fuwu";
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()) //读取信息
{
comboBox1.Items.Add(reader.GetString(0));
}
conn.Close();
select database(); 查看自己所在的库
select * from 图标名称; 查看图表内容 select加上distinct可以隐藏重复行
select * from 图标名称 where 条件; 查看图表满足条件内容
select <列名> from<表名>; 查询列
select <列名> from<表名> where <条件表达式>;
select * from<表名> where <条件表达式>;
聚合函数会将NULL排除在外。但COUNT(*)例外,并不会排除NULL。
-- 计算全部数据的行数(包含NULL)select count(*) from product;
-- 计算NULL以外数据的行数 select count(purchase_price) from product;
除函数COUNT(*)外,其余聚合函数(包括COUNT(<列名>))都会忽略空值
--合计值select sum(sale_price) from product;
--平均值select avg(sale_price) from productl;
max和min也可用于非数值型数据select max(regist_date) from product;
如果用于分组的列中含有NULL值,则NULL将作为一个单独的组返回
如果SELECT语句拥有HAVING短语而没有GROUP BY子句,则会把表中的所有记录都分在一个组中。
show databases; 查看数据库数据库
show tables; 查看数据库里的图表
use 数据库名称; 进入某个数据库
show tables from 数据库名称; 查看另一个数据库里的图表
show character set; 查看所有字符集
show create database 数据库; 查看某个数据库信息
show create table 查看表结构和约束
show create view查看视图结构和约束
增加:
create database 数据库名称 【字符集样式和校对规则】; 创建数据库
create table 新表名 [like 参照表名|AS]; 复制图表
create table product(
product_id char(4)not null,
product_name varchar(100)not null, 非空约束 not null
product_type carchar(32) unique, 替代键约束 值唯一,可以为空
sale_price interge, default 0默认约束,为空时为0
purchase_price integer,
regist_date data,
constraint PK_product primary key(product_id)
);
CREATE TABLE db_school.tb_student
-> ( studentNo CHAR(10),
-> studentName VARCHAR(20) NOT NULL,
-> sex CHAR(2) NOT NULL,
-> birthday DATE,
-> native VARCHAR(20),
-> nation VARCHAR(10) DEFAULT ‘汉’,
-> classNo CHAR(6),
-> CONSTRAINT PK_student PRIMARY KEY(studentNo),
-> CONSTRAINT FK_student FOREIGN KEY(classNo) REFERENCES tb_class(classNo),
-> CONSTRAINT CK_course CHECK(credit=courseHour/16)
-> ON UPDATE RESTRICT RESTRICT 拒绝对被参照表的删除或修改操作
-> ON DELETE CASCADE CASCADE 自动删除或修改参照表中匹配的记录
-> ) ENGINE=InnoDB;
修改
alter database 数据库 default character set 新编码 collate 新校对规则; 修改数据库编码
alter 旧表名 rename 新表名; 修改表名
alter table 表名 change 旧字段名 新字段名 新数据类型; 修改字段名
alter table 图表名 add 列名 int(4); 增加新字段,增加约束 auto_increment 自增约束
alter table 图表名 add [CONSTRAINT <约束名> ]
primary key(主键名) |foreign key(外键字段) references 外表(外键字段)|unque key(候选键名)
alter table 表名 modify 字段名 新数据类型; 修改数据类型,修改null not null
alter table 图表名 modify 字段名 [constraint 约束名字] 约束 如not null;
alter table 表名 alter 列名 set default '值' 添加默认值
alter table 表名 alter 列名 drop default 删除默认值
alter table 表名 check() 添加约束 如check(score>100)
alter table 表名 modify 字段名 数据类型 first|after (first或者after选一个)字段名
alter table 表名 drop 主键(primary key) 外键 (foreign key 外键名) 候选键(index 字段名|候选键名)
update 图表名称 set <列名>=<表达式> where id=编号; 数据更新
update 图表名称 set <列名>=<表达式>; 全部更新
使用 update 时要注意添加 where 条件,否则将会将所有的行按照语句修改
删除:
drop databases 库名称; 删除数据库
drop table 图表名称; 删除某个图表
truncate table 图标名称; 清空表内容
delete from 图表 where 行='XXX'; 删除特定的行
winform中增删改都用ExecuteNonQuery();
string sql = " insert into user (username,password,tel) " +
"values(@username,@password,@tel); ";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.Clear();//清除cmd里面的数据
cmd.Parameters.AddWithValue("@fuwu", comboBox1.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("成功!");
conn.Close();